|
之前在论坛搜索过相关,感觉实现太麻烦了
分享自己写的代码,程序设计思路是一切以简化为主
只需要在CubeMX里面打开串口,然后打开串口DMA,和使能中断不要忘记了
实验效果:
代码结构:
说明:
void USART_Init(UART_HandleTypeDef *huart); //用于初始化DMA接收,例如在main.c里面USART_Init(&huart2);
void Printf(const char *fmt, ...);
void Printf_DMA(const char *fmt, ...); //区别在于一个不用DMA发送一个使用,用法和printf是一样的
static void Process_AT_command(char *command); //处理命令相关,在串口接收回调 函数里使用Process_AT_command(RxBuffer);
使用方法:
1.只需要在CubeMX里面配置好串口和DMA就行,
注意勾选生成外设.c/.文件
在你的main函数里初始化USART_Init(&huart2); //使用那个串口就填那个,前提是在cubemx里面配置好了
打开sys.c文件
这里面可以找到串口接收的回调函数,在这里做你需要的处理就好了
|
评分
-
查看全部评分
|