打印
[STM32F4]

STM32F4 cube生成的HAL库 UART使用DMA收发问题

[复制链接]
13225|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhu_chunyan86|  楼主 | 2016-9-18 18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我正在使用STM32F401Vct做产品,使用STM32F4CUBE生成的HAL库文件,当在while中循环调用HAL_UART_Receive_DMA(&huart6,rxd6_buf,1);和 HAL_UART_Transmit_DMA(&huart6,txd6_buf,1);这两个函数时,发送端没有问题,但是接收端的问题来了。如果我发一个字节的正确指令是没有问题的,但当我在PC端以100ms/次发送一帧数据(肯定大于1个字节)的错误指令时,几分钟后,我的串口STM32F401串口接收端就“死掉了”。发送端还是正常发送数据,MCU好像也没有死掉,但是PC机发送一个正确的指令时就没有反应了。这是怎么回事啊??网上关于HAL库使用的信息好少啊。哎~
沙发
wahahaheihei| | 2016-9-18 20:23 | 只看该作者
https://bbs.21ic.com/icview-1627428-1-1.html
这个帖子有下载HAL教程的,好像就是基于STM32F4

使用特权

评论回复
板凳
亼亽| | 2016-9-19 08:53 | 只看该作者
一般都不会直接把
HAL_UART_Receive_DMA(&huart6,rxd6_buf,1);
HAL_UART_Transmit_DMA(&huart6,txd6_buf,1);
放在while循环里边执行的,一般都是放在while循环之外,然后使用相关中断回调函数实现功能
可以串口我们的程序看看吧
百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1

使用特权

评论回复
地板
zhu_chunyan86|  楼主 | 2016-9-19 10:54 | 只看该作者
亼亽 发表于 2016-9-19 08:53
一般都不会直接把
HAL_UART_Receive_DMA(&huart6,rxd6_buf,1);
HAL_UART_Transmit_DMA(&huart6,txd6_buf,1) ...

我这个系统是需要实现一直连续向外发送数据,并且随时接收外部的指令并作出相应。
而这个HAL库的USART DMA系统好烦啦,要么处于发送,要么处于接收,而非全双工的,好像有点像半双工。不知道是不是这样的啊?

使用特权

评论回复
5
亼亽| | 2016-9-19 11:05 | 只看该作者
zhu_chunyan86 发表于 2016-9-19 10:54
我这个系统是需要实现一直连续向外发送数据,并且随时接收外部的指令并作出相应。
而这个HAL库的USART DM ...

我们的程序就是不断通过DMA发送串口数据
只是我们的接收使用中断接收,实验效果都还不错啊

使用特权

评论回复
6
zhu_chunyan86|  楼主 | 2016-9-19 14:10 | 只看该作者
亼亽 发表于 2016-9-19 11:05
我们的程序就是不断通过DMA发送串口数据
只是我们的接收使用中断接收,实验效果都还不错啊 ...

能提供部分代码参考一下吗?我也尝试过采用该方式,但是在测试时当在PC机向STM32F4以100ms/次发送一帧超长数据时,一段时间后,接收端口就也“死掉了”。请问在接收中断里该如何处理这种错误???

使用特权

评论回复
7
亼亽| | 2016-9-19 14:28 | 只看该作者
【HAL库每天一例】第011例:DMA-USART1接发
https://bbs.21ic.com/forum.php?mo ... amp;fromuid=1735642
(出处: 21ic电子技术论坛)
之前百度云链接已经失效,用下面的这个
百度云盘:https://pan.baidu.com/s/1slN8rIt 密码:u6m1

使用特权

评论回复
8
zhu_chunyan86|  楼主 | 2016-9-20 11:28 | 只看该作者
亼亽 发表于 2016-9-19 14:28
【HAL库每天一例】第011例:DMA-USART1接发
https://bbs.21ic.com/forum.php?mod=viewthread&tid=1591296&fr ...

好了,谢谢啊!
看来还得要好好学习一下这个HAL库。否则用起来BUG到处飞啊。

使用特权

评论回复
9
wangzi10060| | 2018-12-18 15:42 | 只看该作者
亼亽 发表于 2016-9-19 14:28
【HAL库每天一例】第011例:DMA-USART1接发
https://bbs.21ic.com/forum.php?mod=viewthread&tid=1591296&fr ...

你好,百度网盘链接失效,能否给我发一份程序源代码,谢谢。邮箱:wangzi10060@163.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

111

帖子

1

粉丝