历史上的今天
今天是:2024年12月21日(星期六)
2021年12月21日 | STM32HAL库DMA模式串口收发
2021-12-21 来源:eefocus
一.简单了解
串口模式实现有三种
1.普通模式:在主函数中接收函数
2.中断模式:产生的不影响主程序运行
3. DMA模式:与主函数互不影响,独立运行
本文记录第一种普通模式。
学习目标是:实现DMA串口的数据收发,发送数据时LED灯电平翻转。
二.步骤
1-在原来工程基础上,在stm32cubemx中增加dma,usart1中的DMA Settings,ADD
USART1_RX循环接收和USART1_TX单次发送
2-添加MDA宏定义代码
#define UART1_DMA
uint8_t TdataDMA[]={"welcome to uart DMA!rn"};
uint8_t Rdata;
3-在主函数添加
#ifdef UART1_DMA
HAL_UART_Transmit_DMA(&huart1,TdataDMA,sizeof(TdataDMA));
HAL_UART_Receive_DMA(&huart1,&Rdata,1);
while(1)
{
#ifdef UART1_DMA
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
printf("WELCOME TO DMA test!rn");
HAL_Delay(2000);
#endif
}
4-回调函数添加
//回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
#ifdef UART1_DMA
//把接收到的数据发送回屏幕,发送函数要在接收函数前面
HAL_UART_Transmit(&huart1,&Rdata,1,0xff);
HAL_UART_Receive_DMA(&huart1,&Rdata,1);
#endif
}
三.总结
DMA的优先级别过高,使用HAL_UART_Transmit_DMA可能数据还没接收完成的时候就被发送出去,所以采用普通发送,DMA接收,这样就不会漏发接收到的数据,所以在中断回调中使用了HAL_UART_Transmit(&huart1,&Rdata,1,0xff);
史海拾趣
|
1.原理图常见错误: (1)ERC报告管脚没有接入信号: a. 创建封装时给管脚定义了I/O属性; b.创建元件或放置元件时修改了不一致的grid属性,管脚与线没有连上; c. 创建元件时pin方向反向,必须非pin name ...… 查看全部问答> |
|
最近有一个项目,C/S结构,需求中需要用无线传输来实现服务器到客户端的数据传输——经常会涉及到一些1M左右的图片传输。业主准备用CDMA来实现,除了用CDMA模块来实现,是不是也可以用CDMA上网卡来实现?哪位大侠有这方面的成功案例,给我介绍一下 ...… 查看全部问答> |
|
hi, 各位大哥大姐: WinCe 分成2个区: 一个BINFS , 一个 FATFS, BINFS; fatfs 在注册表里面 设置下 就可以知道路径了 比如: /flash binfs 默认 是/windows 路径 现在的问题是: 我分了 ...… 查看全部问答> |
|
Anyone has techwell tw6802 datasheet? Hi: I am from taiwan. I don\'t know how to type simplified Chinese. I need tw6802 datasheet and I cannot find that datasheet in the internet except its brief introdution in the following url: http://www.techwelli ...… 查看全部问答> |
|
3.将采样数据转换成显示数据 LCD显示屏为320×240点阵的图形显示模块,内置RA8803 控制器。模块不仅可以显示单一的文本、图形,而且可以实现双图层的(“或”、“异或”、“同或”、“与”四种逻辑关系)合成显示。在本示波器中显示格线与波形是 ...… 查看全部问答> |
|
vxworks 网络下载时 会卡在loading那里很长时间,然后显示错误0xd0003 不能下载文件。有没有哪位知道怎么解决呢。另外,ftp服务器已开,无打印信息。还请各位不吝指导,兄弟我在这里谢谢了。… 查看全部问答> |
|
MSP-EXP430G2外接32768晶振旁的电容是否要焊接 学习MSP-EXP430G2的板子时,TI给了一个32768的晶振,想把它焊上,不过看电路上还有两个12pf的电容的位置,但TI没给配,问下大家,要焊接时,那两个电容需要焊接么,不焊的话有多大区别或影响?… 查看全部问答> |




