UART 模式2为全双工异步通信, 与模式1不同的是,模式2是11位收发。数据由起始位(逻辑0),8位数据( 最低位在前),第9位数据(TB8或RB8)和停止位(逻辑1)组成。第9位做奇偶校验位或多机通信时用来区分数据和地址。波特率是系统时钟频率的1/32 或1/64,由 SMOD位(PCON.7)来配置。串口模式2的传输时序。
这里UART常规是8bit 数据收发应该大家都知道如何操作,第9位数据的操作会有些困惑。目前新唐第9位操作是直接对寄存器写的方式来做的,如果使能了Mode2 ,但是没有对TB8操作,默认是数据是0。
程序配置操作。
1、测试TB8 =1,测试数据波形 。
这里UART常规是8bit 数据收发应该大家都知道如何操作,第9位数据的操作会有些困惑。目前新唐第9位操作是直接对寄存器写的方式来做的,如果使能了Mode2 ,但是没有对TB8操作,默认是数据是0。
程序配置操作。
1、测试TB8 =1,测试数据波形 。
2、测试TB8 =0,测试数据波形。
3、测试TB8未处理,测试数据波形。
通过上面波形可以非常直观的看到测试情况,如上我基于ML51测试的波形,如果是M0等32bit MCU,操作也是一样需要手动来写,不过设定的寄存器有三个,设定在UA_LCR寄存器的SPE位、EPE位及PBE位,并且写入一个字节到UA_THR寄存器,串口就会传送9位数据格式。
评论