接收采用中断方式
****************************************************************/
#pragma interrupt_handler USART_Received_Ir:12
void USART_Received_Ir()
{
UCSRB&=~BIT(RXCIE); //关串口中断,防止中断嵌套
while(!(UCSRA&(1<<RXC)));//等待接受数据
rec_data[num]=UDR;
num++;
if(num>=200)
{
num=0;
}
else;
//LCD_SHOW(0,0,rec_data);
//delay_ms(1000);
UCSRA|=1<<RXC; //标志位写1就能清零 接收中断信号 表示将继续接收
//LCD_COM(0X01);
//delay_ms(5);
UCSRB|=BIT(RXCIE); //接收完毕中断使能
这是接收中断,但是接收到的数据是发出去的,是不是UDR没清空啊,但是其他程序也没看见清的
|