你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32cubmx实现不定长收发数据

[复制链接]
追梦人ll 提问时间:2018-8-14 09:02 /
使用HAL库中的IDEL和DMA方式实现uart串口接收不定长数据,并在主函数的while中将接收的数据发送到上位机,发现在while中添加HAL_Delay()函数延时后,延时时间越长,串口接收会出现字节丢失甚至串口不工作,有哪路大神知道是什么原因吗。
收藏 评论5 发布时间:2018-8-14 09:02

举报

5个回答
radio2radio 回答时间:2018-8-14 10:32:28
UART串口通信硬件上属于“实时”通信,数据来了就要即时处理,至少要放到软件缓存里面。
不知你为什么要在while里面加入延时等待。不合理。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

追梦人ll 回答时间:2018-8-14 10:51:51
radio2radio 发表于 2018-8-14 10:32
UART串口通信硬件上属于“实时”通信,数据来了就要即时处理,至少要放到软件缓存里面。
不知你为什么要在w ...

我想的是在主函数中还要处理其他模块函数就用了延时来代替
jjbboox 回答时间:2018-8-14 11:07:06
通常是因为你没有及时把DMA缓存中的东西处理掉造成的。
其实已经读进来了,只是你没有处理,然后重新读入的数据覆盖掉了上一次读入的内容吧。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

追梦人ll 回答时间:2018-8-14 11:10:01
追梦人ll 发表于 2018-8-14 10:51
我想的是在主函数中还要处理其他模块函数就用了延时来代替

明白了,多谢
bargagebaobei 回答时间:2018-8-14 13:09:47
在串口接收中并不需要添加延时函数

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版