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

串口接收用RTOS中任务轮询接收会丢数据吗?

[复制链接]
奏奏奏 提问时间:2020-8-13 19:44 /
项目中用到 串口通讯 与 I2C总线上主从机通讯,
因为考虑到I2C通讯很可能会被串口接收中断给打断,
所以正在考虑 串口接收从原来的接收中断方式 改为 在FreeRTOS中独立一个任务轮询接收数据,波特率是115200
考虑到可能会丢失串口数据,希望有这么干过的大佬能指点一下,先谢谢各位!
收藏 评论4 发布时间:2020-8-13 19:44

举报

4个回答
yklstudent 回答时间:2020-8-14 08:31:12
会。。。
Dandjinh 回答时间:2020-8-14 08:54:45
上了操作系统一般建议用DMA的,I2C主机可以用DMA,串口可以用DMA+空闲中断,这样不会占CPU时间。

评分

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

查看全部评分

butterflyspring 回答时间:2020-8-19 16:53:58
Dandjinh 发表于 2020-8-14 08:54
上了操作系统一般建议用DMA的,I2C主机可以用DMA,串口可以用DMA+空闲中断,这样不会占CPU时间。 ...

有些型号的I2C有一些事件处理,这些处理需要用高优先级中断,所以这部分还不能依靠DMA。只有数据收发的时候是可以用DMA帮助处理的
废鱼 回答时间:2020-8-19 17:38:25
轮询肯定会丢数据的。建议I2C和串口都用中断。发送可以考虑DMA,但是接收的时候,需要考虑接收的数据长度问题来判断DMA和中断方式哪一种更合适。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版