USART通讯问题
我有2个ATmega16的小板,打算做个USART通讯的实验,程序是修改马老师那个USART章节最开始的那个简单程序,后面那个实际应用有点复杂了,看不懂。。interrupt void usart_rx_isr(void) // USART接收中断服务
{
unsigned char status,data;
status = UCSRA;
data = UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) //帧错误 奇偶校验错误 数据溢出
receive_data = data;
union_n=union_n+1; //相当于union_n从1开始
if(union_n-1>=5) union_n=1;
buffer_receive=receive_data;
}
void USART_Transmit(unsigned char data)
{
while (!(UCSRA & 1<<UDRE)); // 等待发送寄存器空
UDR = data; // 发送数据
}
void main()
buff=0x05;
buff=0x04;
buff=0x03;
buff=0x02;
buff=0x01;
for(y=0;y<5;y++)
{
USART_Transmit(buff);
//delay_ms(200);
}
主要的框架是这些 还有一些键盘的,现在的问题是 主机发送5个字符,从机可以接受到,但是从机应答5个字符,主机就无法正常接受了,新手,不知道如何修改下实现2个板子的通讯。
页:
[1]