串口奇偶效验问题

[复制链接]
1129|11
 楼主| FAQ 发表于 2015-4-15 00:21 来自手机 | 显示全部楼层 |阅读模式
开启奇偶效验位,如果出现干扰导致误码,接收方收到的数据效验不过。接收方会怎么处理这个误码的数据。
受不了了 发表于 2015-4-15 08:22 来自手机 | 显示全部楼层
没啥用处,也没必要去深究
ningling_21 发表于 2015-4-15 10:57 | 显示全部楼层
不用怎么处理,直接清除接收缓冲区
 楼主| FAQ 发表于 2015-4-15 11:32 | 显示全部楼层
受不了了 发表于 2015-4-15 08:22
没啥用处,也没必要去深究

什么叫没啥用处,我是说这个误码的数据会被硬件自动过滤屏蔽掉吗。

比如串口开了一个接受中断。正常情况下没有误码的情况下,串口在收到一个字节以后会产生一个中断。

但是如果误码以后呢,这个中断还会不会产生。我觉得硬件效验不过,会直接屏蔽掉的。这个中断也不会产生。

这个误码的字节会被直接忽略掉的。   也就是说接受方会先进行硬件效验。效验通过才会通知CPU。
 楼主| FAQ 发表于 2015-4-15 11:34 | 显示全部楼层
ningling_21 发表于 2015-4-15 10:57
不用怎么处理,直接清除接收缓冲区

直接清除接收缓冲区?,这个是由硬件自动完成的吧。用户应该是不用干预,察觉不到的吧。
NE5532 发表于 2015-4-15 12:08 | 显示全部楼层
我遇到的MCU都会接收进缓冲区,你用的MCU咋处理,请自己看手册了。
mmuuss586 发表于 2015-4-15 18:45 | 显示全部楼层

都会接收的,看你程序怎么处理了;
我们一般一串数据都会做校验的;
 楼主| FAQ 发表于 2015-4-15 23:54 来自手机 | 显示全部楼层
NE5532 发表于 2015-4-15 12:08
我遇到的MCU都会接收进缓冲区,你用的MCU咋处理,请自己看手册了。

进入缓冲区以后我怎么知道这个数据是否符合效验。
NE5532 发表于 2015-4-16 12:00 | 显示全部楼层
FAQ 发表于 2015-4-15 23:54
进入缓冲区以后我怎么知道这个数据是否符合效验。

看手册,有标志的。
SD10A 发表于 2015-4-19 12:41 | 显示全部楼层
FAQ 发表于 2015-4-15 23:54
进入缓冲区以后我怎么知道这个数据是否符合效验。

if(UCSRA|BIT(PE))                //如果出现奇偶校验错误
                        {UCSRA|=BIT(UDRE);//清空数据寄存器
                        //RX_Buffer=UDR;        //
                        }
               
我是这么搞的  也不知道对不对,请批评指正
受不了了 发表于 2015-4-19 22:27 来自手机 | 显示全部楼层
我会的不多,但是觉得这个奇偶校验相比那些成熟的通讯协议真的没啥意义
JY-DX-JY 发表于 2015-4-19 22:55 | 显示全部楼层
接收方接收到数据,要校验。通不过就认为数据有误,就丢弃。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

FAQ

233

主题

2050

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部