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

串口通信

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

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

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

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

举报

2个回答
xmshao 回答时间:4 天前
问题有点意思。


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


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


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


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

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

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

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