关于串口接收问题

2019-10-15 03:30发布


[mw_shl_code=c,true]int main(void)
{       
        IIC_Init();
        delay_init();
        uart_init(9600);
        dht11_init();
        gy30_init();
        usart3_init();
        Adc_Init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        while(1)
        {

                if(control==0xAA) //¿aÆô′«êä
                {       

                                Send485_humiture();
                                delay_ms(500);
                                Send485_light();
                                delay_ms(500);
                                Send485_soil();
                                delay_ms(500);
                                Send485_pm();
                                delay_ms(500);

                }
                if(control==0x55)
                {
                }
        }
       
}
void USART1_IRQHandler(void)
{
        if (USART_GetITStatus(USART1,USART_IT_RXNE))
        {
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                control=USART_ReceiveData(USART1);

        }
}[/mw_shl_code]

我想通过电脑给单片机发送 0xAA数据 单片机通过485开始传数据   发送0x55就停止发送数据   但是我这样编程过后发送0xAA过后 只发送一轮数据也就是只走了if(control==0xAA)里面一次  不能自己一直循环呢?我的control值难道不是该一直等于0xAA么 请问问题在哪呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。