3926|2

483

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

stm32 串口通信地址唤醒问题 [复制链接]

stm32串口通信支持地址唤醒,但是地址位只有4位,也就是说最多连接16个..在很多情况下都不够用。
除此以外还有其他问题,比如,对于1号地址,接收的数据必须以0x81开头,但是如果给2号地址发送:
82 05 05 81 02 02
那么一号机就会收到81 02 02...
我设想的解决办法是:
1,地址扩展,地址唤醒后再增加一句扩展地址判断,如果扩展地址匹配失败,则进入静默状态。
并且增加校验位,针对第二个问题,在数据帧后面增加校验位 ,比如CRC16,就算一号机接收到错误的数据,也不能通过校验..(但是这样的话,效率很低的样子啊)
2,不使用地址唤醒,使用总线空闲唤醒,从机被唤醒后,检测第一位为地址位,如果地址位不匹配则进入静默状态
大家有没有什么更好的办法?
(还有个问题是,已经被唤醒的情况下,通过软件判断是被错误地唤醒了,怎么设置它再次进入静默状态??RWU要怎么设置?)
此帖出自stm32/stm8论坛

最新回复

来学习学习!  详情 回复 发表于 2015-2-26 19:10
点赞 关注
 

回复
举报

20

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
来学习学习!
此帖出自stm32/stm8论坛
 
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
这个问题已经有了眉目
除了上面提到的解决方法,还有个解决办法是用DMA接收串口数据,不用中断。
在串口这个方面,stm32和430都用过,说一下他们的区别,430可以直接识别帧头,然后可以软件设置进入静默状态,而stm32貌似就不能软件设置进入静默状态。
但是stm32的帧空闲中断比较好用,在变长通信的时候,可以省下一个定时器资源,而430就必须在串口接收中断中开启定时器,不然就没法确定什么时候数据传完了。
总体上感觉,stm32便宜,性能强,但是有些方面感觉还是不够方便。
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表