OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2411|回复: 1

STM32串口和AVR串口多机模式通讯,要使用9位数据,如何配置

[复制链接]

49

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2017-3-24
在线时间
64 小时
发表于 2019-8-16 14:18:36 | 显示全部楼层 |阅读模式
1金钱
数据帧一般采用1位起始位、9位数据位,其中第9位(RXB8)被用作为表征该帧是地址帧还是数据帧。当帧类型表征位为“1”时,表示该帧数据为一个地址帧;当帧类型表征位为“0”时,表示这个帧为一个数据帧。

在AVR中,通过设置从机的UCSRA寄存器中标志位MPCM,可以使能USART接收器对接收的数据帧进行过滤的功能。如果使能了过滤功能,从机接收器对接收到的那些不是地址信息帧的数据帧将进行过滤,不将其放入接收缓冲器中 。
对于在多机通信系统中的主机MCU,可以设置使用9位数据帧结构(UCSZ=7)。当发送地址帧时,置第9位为“1”;发送数据帧时,置第9位为“0”。在这种情况下,从机也必须设置成接收9位数据帧结构。
)每一个从机MCU读UDR寄存器,并判断自己是否被主机寻址。如果被寻址,清UCSAR寄存器中的MPCM位,等待接收数据;否则保持MPCM为“1”,等待下一个地址帧的接收(该步应由用户软件处理实现)
新加了一个从机,使用的STM32F103 。现在就是,接收可以不管第九位还是第几位的。发送怎么配置,或者怎么写,成为数据帧位9位的。比如,我从机要发送一个地址0x28(0010 1000),  如果要变成九位,难道发送0x51(0010 1000 1)吗。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
887
金钱
887
注册时间
2018-4-20
在线时间
491 小时
发表于 2019-8-16 14:40:30 | 显示全部楼层
多发送一个字节表示不就好了吗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表