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

串口通信

[复制链接]
岚_ 提问时间:2024-6-14 16:36 / 未解决

| 1.如何避免在中断里面执行长时间的操作

| <br/>2.串口通信的时候怎么避免丢包的情况<br/>

3.串口通信为什么不可以一次发送1000bit或者10000bit 也就是说一帧数据为 一位起始位 10000bit数据位 一位停止位<br />
收藏 评论2 发布时间:2024-6-14 16:36

举报

2个回答
xmshao 回答时间:2024-6-14 17:26:02
问题有点意思。


第一、中断程序是用户写的,你不在中断服务程序里 长篇大作即可避免,只在中断服务程序里
设置特定标志,在主循环里基于标志位状态做相应处理。


当然,这个并非绝对的。要看具体需求,有时就是需要基于中断事件一气呵成地将事情处理完毕,
此时只能将代码尽量简练些。 还有就是,如果系统中断多,合理安排中断优先级也非常重要。


第二、避免,只能尽力避免。丢包可能软硬件方面的原因。接收方保证接收的优先级或及时性,比如调高接收中断的优先级,或采用DMA接收同时也保证相关DMA的优先级。硬件上尽量保证线路的稳定可靠。


第三个问题,UIART协议就是起始位加上一个字节数据,然后停止位。如果觉得该协议不满足需求,可以
看看别的协议,比方CAN,I2C,SPI等等。
晒太阳的懒猫 回答时间:2024-6-15 11:30:20

应该可以吧。有通讯协议,发多长都不是问题。问题是一次发太多,受到干扰,就得重发。每次重发的太多,会稳定?

中断的处理,尽可能是建立标志,在外部执行处理。中断处理中执行的代码太多,很容易导致中断嵌套,影响主程序。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版