51的usart可以用查询的方式吧,stm32的有查询的方式吗

51的usart可以用查询的方式吧,stm32的有查询的方式吗

都可以用查询方式。stm32的USART接收数据的时候,一般情况下都是用中断方式,因为我们知道什么时候给串口发数据,但是不知道数据到底什么时候接收完,所以接收采用了中断,发送没用中断。
    用查询的话,就是去不断查询寄存器状态。
    while(!(USART1->SR & (1<<5)));   //收到数据,可以读出
    data=USART1->DR ;
    while(!(USART1->SR & (1<<7)));  //数据已经被转移到移位寄存器
    USART1->DR =data;