jasonli 发表于 2010-6-13 11:59:56

atmega128串口接收有时候会出错!

atmega128和dsp2812进行通信,采用modbus协议,绝大部分时间通信是正常的,但是有时会出现单片机接收到的数据(用仿真器看)和串口软件看到的数据不相同,例如,dsp2812返回的数据时0xa1,但是单片机串口接收到的数据就是0x58,求高手帮忙解决,这是什么问题?
串口初始化程序:
/*UART0初始化*/
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;//异步操作,禁止校验,两个停止位,数据长度为8
UBRR0L = BAUD_L; //设置波特率:19200
UBRR0H = BAUD_H;
UCSR0B|= BIT(TXEN0)|BIT(RXEN0)|BIT(RXCIE0)|BIT(TXCIE0);//发送接收使能,发送接收中断使能
DDRE |= BIT(PE2);//PE2(485控制口)配置为输出状态
}
页: [1]
查看完整版本: atmega128串口接收有时候会出错!