求助如何从串口中断服务函数跳转到主函数执行相应命令?

2019-07-20 02:24发布

新人求助,想从串口中断服务函数中读取命令帧,然后到主函数中判断,若命令帧结束,如从上位机接收的最后一个字符为'#',则执行相应的命令,但是我的程序卡在了
主函数里判断最后一个字符是否是'#'这一步,问题出在哪里呢?


主函数:
int main(void)
{


        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);  //初始化延时函数
        uart_init(115200);                //初始化串口波特率为115200
        RS485_Init(115200);                //初始化RS485串口3
        LED_Init();                                        //初始化LED
        TIM3_Int_Init(10000-1,8400-1);
        OV2640_Init();
        delay_ms(200);

        while(1)
        {
               
                if(RS485_receive_str[uart_byte_count-1] == '#')     //卡在这一步了
                {jpeg_test();}

         }
}





串口中断:

void USART3_IRQHandler(void)
{
        unsigned int rec_data;
        uart_byte_count=0;
       
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
                {
                        rec_data = (u8)USART_ReceiveData(USART3);                        //(USART3->DR) 读取接收到的数据
                        RS485_receive_str[uart_byte_count++] = rec_data;                       

                }            

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。