OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2624|回复: 7

串口奇偶校验

[复制链接]

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-12
在线时间
17 小时
发表于 2016-8-24 13:23:28 | 显示全部楼层 |阅读模式
3金钱
请各位大神帮忙解决一个串口奇偶校验的问题?
串口初始化配置:
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_Parity = USART_Parity_Even;//偶校验
串口接收中断:
if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)  
        {
                if(USART_GetFlagStatus(UART4, USART_IT_PE) != RESET)
                {
                        USART_ClearFlag(UART4, USART_IT_PE);                       
                        USART_ClearITPendingBit(UART4, USART_IT_RXNE);

                }
                else
                {
                        Res =USART_ReceiveData(UART4);//(USART1->DR);       
                        if((USART_RX_STA&0x8000)==0)//
                        {
                                if(USART_RX_STA&0x4000)//
                                {
                                        if(Res!=0x0a)USART_RX_STA=0;//
                                        else USART_RX_STA|=0x8000;        //
                                }
                                else //
                                {       
                                        if(Res==0x0d)USART_RX_STA|=0x4000;
                                        else
                                        {
                                                USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
                                                USART_RX_STA++;
                                                if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//          
                                        }                 
                                }
                        }
                }               
  }

每次奇偶校验出错,都进if(USART_GetFlagStatus(UART4, USART_IT_PE) != RESET)里面,进不了else里面是怎么回事?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-8-24 14:15:52 | 显示全部楼层

既然校验出错,条件成立,当然进这里吧?


回复

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-12
在线时间
17 小时
 楼主| 发表于 2016-8-24 14:21:37 | 显示全部楼层
不要闹,好不好,我是说怎么每次都校验出错,原因出在哪?
回复

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-12
在线时间
17 小时
 楼主| 发表于 2016-8-24 14:22:08 | 显示全部楼层
原子哥能帮忙解决一下吗?
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-8-24 14:30:12 | 显示全部楼层
feng_dou 发表于 2016-8-24 14:21
不要闹,好不好,我是说怎么每次都校验出错,原因出在哪?

上示波器,看看你发的数据对不对先
回复

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-12
在线时间
17 小时
 楼主| 发表于 2016-8-24 14:32:59 | 显示全部楼层
憨厚诚实大叔 发表于 2016-8-24 14:30
上示波器,看看你发的数据对不对先

这里没有示波器,有没有其他办法呀?
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-8-24 17:59:14 | 显示全部楼层
每次都检验出差的花,我怀疑你发的数据根本没加检验或者加错了校验
回复

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-7-12
在线时间
17 小时
 楼主| 发表于 2016-8-25 10:38:00 | 显示全部楼层
憨厚诚实大叔 发表于 2016-8-24 17:59
每次都检验出差的花,我怀疑你发的数据根本没加检验或者加错了校验

串口软件加的,上位机给下位机加载的,你看看程序
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 13:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表