首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
ARM7串口9位方式多机遇信的编程技术
来源:本站整理  作者:佚名  2009-09-23 09:55:17



其中第3位和第4、5位十分重要。
    奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一位校验位。
    O——禁止奇偶产生和校验。
    1——使能奇偶产生和校验。
    奇偶选择:设置奇偶校验类型。
    OO——奇数(数据位+校验位=奇数)。
    01——偶数(数据位+校验位=偶数)。
    10——校验位强制为1。
    11——校验位强制为O。
    U0FCR寄存器的描述如下:

    这里面注意第6、7位。
    Rx触发点设置:通过设置这两位可以调整接收FIF0中触发RDA中断的有效字节数量。
    00——触发点O(1字节)。
    01——触发点1(4字节)。
    10——触发点2(8字节)。
    11——触发点3(14字节)。


3 9位方式多机通信编程实现

    上面已说明,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] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:25,820.31000 毫秒