中级会员
 
- 积分
- 390
- 金钱
- 390
- 注册时间
- 2017-3-24
- 在线时间
- 64 小时
|
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)吗。
|
|