我用的是mega16,一直处于接收数据状态,我要做的是分析接受到的数据把有用的存到数组里,没有用的就不用存,然后再发到pc机上来显示,用的是sscom3.2串口调试软件,有用数据开始标志为是55 55,结束标志为是aa aa,下面的程序我不知道是哪里错了,就是没有反应,下面是中断程序
void uart_rx()
{
UCSRB&=~BIT(RXCIE);
if((UDR==0x55)||(UART1_RX_BUF[0]==0x55))
{
UART1_RX_BUF[r_n]=UDR;
r_n++;
if(r_n!=0)
if((UART1_RX_BUF[r_n-2]==0xaa)&&(UART1_RX_BUF[r_n-1]==0xaa))
{
r_n=0;
kongzhi();
UART1_RX_BUF[0]==0;
}
}
UCSRB|=BIT(RXCIE);
}
请求大家帮助 |