打印

串口无法通信

[复制链接]
530|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
哈金|  楼主 | 2020-4-25 20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近调试串口的时候突然发现一个问题:由于之前调试串口都是直接把串口的USB连接上电脑,打开串口调试助手,然后才开始调试的,这种情况下程序跑的很顺利。但是,又一次我没有把串口的USB连接上电脑就直接开始跑程序,什么都没做,程序就直接跑进串口的中断,然后出不来了,这个时候再插上USB也出不来中断。更令我吃惊的是,只要插上了USB,哪怕我的串口调试助手没有打开串口,程序也跑的很好。。。。
捣鼓了半天,实在想不明白,所以想请教一下各位,谢谢大家了。

下面是中断程序的代码:
//串口中断服务函数
void USART1_IRQHandler (void)
{

        if(USART_GetITStatus(USART1,USART_IT_ORE)!=RESET)
        {               
                usart_read = USART_ReceiveData(USART1);
                USART_ClearITPendingBit(USART1,USART_IT_ORE);
  }
        
        if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
        {               
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                usart_read_f[num] = USART_ReceiveData(USART1);
                Usart_SendByte( USART1, usart_read_f[num]);
                        num++;
                if(num==8)
                {
                        for(i=0;i<8;i++){
                        DealMODBUSData(usart_read_f);        //modbus的处理程序
                        }
                        
                        num=0;
                }
        }         
        
}

使用特权

评论回复

相关帖子

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

本版积分规则

432

主题

433

帖子

1

粉丝