打印
[STM32F1]

串口通信 stm32F103 问题

[复制链接]
1071|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ghwcxh|  楼主 | 2017-6-19 16:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是原来原子的程序改变的,之前是接收到.....0x0d 0x0a表示正确接受。 现在的想法是接收到0x0d......0x0a就正确接受,中间的是字节数据。请高收指教有什么错误
void USART1_IRQHandler(void)
{
        u8 res;       
#if SYSTEM_SUPPORT_OS                
        OSIntEnter();   
#endif
        if(USART1->SR&(1<<5))       
        {         
                res=USART1->DR;
                if((USART_RX_STA&0x8000)==0)//½ÓÊÕδÍê³É
                {
                        if(USART_RX_STA&0x4000)//½ÓÊÕµ½ÁË0x0d
                        {
                                if(res!=0x0a)
                                {
                                        USART_RX_BUF[USART_RX_STA&0X3FFF]=res;
                                        USART_RX_STA++;
                                        if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//½ÓÊÕÊý¾Ý´íÎó,ÖØпªÊ¼½ÓÊÕ          
                                }                 
                                else USART_RX_STA|=0x8000;        //½ÓÊÕÍê³ÉÁË
                        }
                        else //»¹Ã»ÊÕµ½0X0D
                        {       
                                if(res==0x0d)
                                        USART_RX_STA|=0x4000;
                        }
                }                                                                                                
        }
#if SYSTEM_SUPPORT_OS         //Èç¹ûSYSTEM_SUPPORT_OSΪÕ棬ÔòÐèÒªÖ§³ÖOS.
        OSIntExit();                                                                                           
#endif
}
沙发
feelhyq| | 2017-6-19 16:45 | 只看该作者
这个属于逻辑问题,自己整理整理思路还是能够出来的,相信你可以的

使用特权

评论回复
板凳
ghwcxh|  楼主 | 2017-6-19 17:13 | 只看该作者
feelhyq 发表于 2017-6-19 16:45
这个属于逻辑问题,自己整理整理思路还是能够出来的,相信你可以的

逻辑没有问题的,  if(USART_RX_STA>(USART_REC_LEN-1)) 中的USART_RX_STA用错了,应该是USART_RX_STA&0x3FF

使用特权

评论回复
地板
feelhyq| | 2017-6-19 17:28 | 只看该作者
ghwcxh 发表于 2017-6-19 17:13
逻辑没有问题的,  if(USART_RX_STA>(USART_REC_LEN-1)) 中的USART_RX_STA用错了,应该是USART_RX_STA&0x ...

嗯,你这不是解决了嘛?  逻辑问题就是跟硬件没有关系的问题。

使用特权

评论回复
5
joing1999| | 2017-6-19 17:33 | 只看该作者
楼上好人啊。知道问题,但不告诉楼主,培养楼主的主动思考能力,楼主应该谢谢2楼大神。

使用特权

评论回复
6
zhuotuzi| | 2017-6-19 17:54 | 只看该作者
之前是接收到.....0x0d 0x0a表示正确接受。 现在的想法是接收到0x0d......0x0a就正确接受???这描述有问题?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

165

帖子

1

粉丝