OpenEdv-开源电子网

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

为什么串口接收不到数据呢?

[复制链接]

7

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2016-7-6
在线时间
49 小时
发表于 2017-5-2 20:50:38 | 显示全部楼层 |阅读模式
1金钱
用的是原子的官方例程,找了好久没找到问题,求指点啊,就加了一个判断接收到的数据是不是以ff开头,ee结尾的。USART_RX_STA是u16变量,最高位用来判断是否接收完成,次高位是用来判断是不是接收到了ff头。找了一天多了还是没找出问题。
USART1_IRQHandler(void)                    //串口1中断服务程序
    {
    u8 Res;
    u16 temp;
#if SYSTEM_SUPPORT_OS         //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
    OSIntEnter();   
#endif
    if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
        {
        
        Res =USART_ReceiveData(USART1);    //读取接收到的数据
            
             if(Res==0xff)//接收中断(接收到的数据必须是0xff头)
            {   
                USART_RX_STA|=0x4000;//接收0xff标志位
             }
                        
        
        if(((USART_RX_STA&0x8000)==0)&&((USART_RX_STA&=0x4000)!=0))//接收未完成且数据是以0xff开头
            
            {  
                     if(Res==0xee)
                        {
                             
                            USART_RX_STA|=0x8000;    //接收完成了
                            Communication_Decode();                           
                        }
               

                    else //还没收到0Xee
                        {   
                                    
                        USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
               
                            temp=USART_RX_STA&0x3FFF;
                            USART_RX_STA++;
                            if(temp>(USART_REC_LEN-1))
                                {
                                 USART_RX_STA=0;//接收数据错误,重新开始接收   
                                }                                       
                                             
                        }
                                    
            }            
     }
#if SYSTEM_SUPPORT_OS     //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
    OSIntExit();                                               
#endif
}
#endif   




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

使用道具 举报

58

主题

6296

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11603
金钱
11603
注册时间
2014-4-1
在线时间
1327 小时
发表于 2017-5-2 21:42:28 | 显示全部楼层

先确保能正确收到数据,
然后仿真器设断点,很容易查。


回复

使用道具 举报

7

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2016-7-6
在线时间
49 小时
 楼主| 发表于 2017-5-2 22:58:14 | 显示全部楼层
顶下,刚才只有一次达到目的,后面重新下载进去就又不行了,是什么问题。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 17:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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