AVR ATmega16 单片机串口通信问题?谢谢
问题是这样:利用串口助手实现电脑和单片机的通信,电脑向单片机发送数据(字符),可以实现单字节和多字节通信,现在的问题是,本来我单片机设置的波特率为19200,串口助手也是19200,如果我串口助手改成其他波特率(比如2400,9600等),再给单片机发送数据,那单片机肯定是没有反应,问题是把波特率改回来19200之后,数据就发送不进去了,必须关掉串口助手再次打开才行,我程序中也没有写发送数据不对就不接受,或者说关闭中断什么的,问题是这和波特率有关,我波特率设置应该没问题,要不然也不会实现通信?请问为什么,怎样解决,谢谢⼀⼀***字符接受中断函数***⼀⼀void uart_RX(void){UCSRB&=~BIT(RXCIE);⼀⼀关闭接受结束中断rdata[num]=UDR;send_B(rdata[num]);num++;flag=1;UCSRB|=BIT(RXCIE);⼀⼀打开中断}⼀⼀***发送一个字符***⼀⼀void send_B(uchar data){ while(!(UCSRA&(BIT(UDRE)))); UDR=data; while(!(UCSRA&(BIT(TXC)))); UCSRA|=BIT(TXC);⼀⼀清零⼀⼀}