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

[复制链接]
13589|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系统好烦啦,要么处于发送,要么处于接收,而非全双工的,好像有点像半双工。不知道是不是这样的啊?
亼亽 发表于 2016-9-19 11:05 | 显示全部楼层
zhu_chunyan86 发表于 2016-9-19 10:54
我这个系统是需要实现一直连续向外发送数据,并且随时接收外部的指令并作出相应。
而这个HAL库的USART DM ...

我们的程序就是不断通过DMA发送串口数据
只是我们的接收使用中断接收,实验效果都还不错啊
 楼主| zhu_chunyan86 发表于 2016-9-19 14:10 | 显示全部楼层
亼亽 发表于 2016-9-19 11:05
我们的程序就是不断通过DMA发送串口数据
只是我们的接收使用中断接收,实验效果都还不错啊 ...

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

粉丝
快速回复 在线客服 返回列表 返回顶部