stm32基于CubeMX使用UART+DMA实现数据接收发送
前言
最近用了NUCLEO的板子做一些东西,用到了串口通讯,结合一些资料再加上自己整合基本实现了发送和接收任意长度数据段(第一次写博客有点小紧张哈哈)。
CubeMx软件的配置过程
首先,建立新的工程,选择芯片类型,这里我用的是stm32l073rz。
下面选择sys部分,勾选Debug Serial Wire (这个好像是下载调试 st-link,也不是很清楚)。
选择USART2,选择模式Asynchronous(异步通信)模式。
选择下面DMA模式 ,添加rx tx,并设置tx为循环模式。
勾选USART2全局中断。
保存工程,选择相应的选项,生成代码即可。
代码部分
C语言的重定向fputc函数
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
ch为要写入的参数,fp