新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 移动嵌入ARM7串口9位方式编程技术

移动嵌入ARM7串口9位方式编程技术

作者: 时间:2011-06-17 来源:网络 收藏
3 9位多机通信实现

本文引用地址:https://www.eepw.com.cn/article/150590.htm

  上面已说明,9位多机通信的关键是第9位的发送和第9位的接收和判断。

  对于发送端,利用UOLCR寄存器的设置便能实现第9位的发送。

  UOLCR=0x2B; //带奇偶校验,强制为l

  UOLCR=Ox3B; //带奇偶校验,强制为O

  通过以上设置,只要编程发送1字节,arm就自动将第9位按程序设置的0或1发送出去。

  难点在于接收端,即接收端把接收到的第9位放到哪了,程序员又如何知道这第9位是0还是1。

  其实,ARM并不像51单片机那样把接收到的第9位数据自动装入SCON的RB8。实际上,ARM并没有这样的寄存器SCON,也没有RB8位。要实现判断第9位为1或0,只能利用arm通信的奇偶校验功能!

  具体思路如下:

  ①设置奇偶校验使能;

  ②编程读取UOLSR寄存器的PE位(具体含义见UOLSR寄存器的描述部分);

  ③编程判断收到的l字节中有多少个“1”,并设置一标志PP;

  ④将上述标志与PE位比较处理;

  ⑤比较的结果就正确表示了第9位是“O”,还是“1”。

  按照以上思路,可有效实现第9位的判断。下面给出相应的程序代码:

  

  上述程序中变量u9就是得到的第9位标志:

  当u9=OxFF时,说明第9位为1;

  当u9=OxFE时,说明第9位为O。

  还需注意的是,接收端奇偶校验设置成偶校验还是奇校验,要根据后面程序中标志pp的设置而定。

  4 总 结

  本设计方案巧妙地应用arm通信奇偶校验功能,实现了9位的多机通信,并在相关课题中成功应用,而且保证了通信的可靠性。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭