12209|16

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

单片机串口通讯的奇偶校验问题 [复制链接]

    单片机的串口一次发送1个字节,也就是8位。另外现在一般的单片机,串口模块本身有奇偶校验功能。
    现在有个问题想不明白。如果要使用奇偶校验功能,那么串口发送的数据肯定只能有7位有效数据了,另外1位要做奇偶校验的功能。但是我刚才看书上的一个代码的时候发现,串口设置了8位数据传输,并且也使用了奇校验。搞不懂为什么在传送8位有效数据的时候,串口还能使用奇偶校验功能?那一位奇偶校验位是存在哪儿的?

最新回复

串口助手发送的时候,如果选中奇偶校验的话,发送或接收的数据是自动加进去吗?  详情 回复 发表于 2016-4-28 14:44
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
"但是我刚才看书上的一个代码的时候发现,串口设置了8位数据传输,并且也使用了奇校验。"

把它的代码贴来看看?
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
串口设置了8位数据传输没错,7位有效数据+1位奇偶校验=8位
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
那就是说,不可能出现发送8位有效数据还能使用串口奇偶校验吧?
我现在在数据帧里加了一个字节,来记录整个数据帧里数据的位1的个数,以此来当作一个简单的校验。这样做有什么问题没有?
另外,请问有什么快速的方法查询一个字节里有多少个1?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 kongfo1019 的回复:
那就是说,不可能出现发送8位有效数据还能使用串口奇偶校验吧?
我现在在数据帧里加了一个字节,来记录整个数据帧里数据的位1的个数,以此来当作一个简单的校验。这样做有什么问题没有?

现在发送一个字节的有效数据最多的可以用到10位
就是8位的有效数据+1位的多机通讯+1位的奇偶校验
所以你说的是可能的

还有关于校验 一般简单的可用垂直和校验 复杂的可用CRC校验
你自定义的方法虽然可以 但是未必如上两种有效
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
最简单的是用校验和,把一个包的数据都加起来,也发过去. 接收方用同样的方法检查一下,基本能判断数据是否正确
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 qzf368 的回复:
引用 3 楼 kongfo1019 的回复:
那就是说,不可能出现发送8位有效数据还能使用串口奇偶校验吧?
我现在在数据帧里加了一个字节,来记录整个数据帧里数据的位1的个数,以此来当作一个简单的校验。这样做有什么问题没有?

现在发送一个字节的有效数据最多的可以用到10位
就是8位的有效数据+1位的多机通讯+1位的奇偶校验
所以你说的是可能的

还有关于校验 一般简单的可用垂直和校验 复杂的可用CRC校验
你自定义的方法虽然可以 但是未必如上两种有效


但是在给串口写数据时,串口只有8位也就是两个字节。这样的情况下,应该不能发送到10位吧?是不是这样的?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用楼主 kongfo1019 的回复:
单片机的串口一次发送1个字节,也就是8位。另外现在一般的单片机,串口模块本身有奇偶校验功能。
? ? 现在有个问题想不明白。如果要使用奇偶校验功能,那么串口发送的数据肯定只能有7位有效数据了,另外1位要做奇偶校验的功能。但是我刚才看书上的一个代码的时候发现,串口设置了8位数据传输,并且也使用了奇校验。搞不懂为什么在传送8位有效数据的时候,串口还能使用奇偶校验功能?那一位奇偶校验位是存在哪儿的?

单片机是发送8位数据位 而且要奇偶校验  他是把要发送的8位数据 最高位设置成奇偶校验位

比如:A是要发送的数据
MOV C,PSW.0   设置奇校验位
CPL C     奇校验
MOV ACC.7 ,C
MOV SBUF,A
  
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 kongfo1019 的回复:
但是在给串口写数据时,串口只有8位也就是两个字节。这样的情况下,应该不能发送到10位吧?是不是这样的?

单片机的数据位可以是5、6、7、8
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

10
 
"就是8位的有效数据+1位的多机通讯+1位的奇偶校验"概念错误!
“1位起始位+8位的有效数据(包括1位的奇偶校验)+1位停止位“共10位。
多机通讯是单片机的特点,PC上没有,这时10位+1位=11位。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
51串口用方式3可实现8位数据+奇偶校验
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
校验位是在数据位之后由硬件的串口控制器自动加上去的。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
补充:
“1位起始位”是异步通讯的特点,只有它使数据可以同步。
“1位停止位”不一定是一位,可以是1.5位或2位,不过不是每个UART都支持。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 11 楼 tcdzyq 的回复:
校验位是在数据位之后由硬件的串口控制器自动加上去的。

也就是说它的奇偶校验并不占用1个数据位?对吧?我发送的数据必须要发送8位有效数据,没有空位来留给奇偶校验。
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

15
 
占用1个数据位!用了P只能7位数据,数据校验可以用CheckSum或CRC。
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

16
 
不管是什么校验,都是通过串口发送数据的,校验只是在要发送的数据后加了些校验数据,提高发送的可靠性
 
 
 

回复

315

帖子

8

TA的资源

一粒金砂(中级)

17
 
串口助手发送的时候,如果选中奇偶校验的话,发送或接收的数据是自动加进去吗?
 
个人签名给生活一个梦想,给奋斗一个方向!---淘宝搜索逸嵌电子工作室
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表