单片机:AVR的M8 硬件电路我是按375D1说明上的串口连接方式: 1、 375的RXD、TXD分别与单片机的TXD、RXD相连 2、 RSTI通过三个并联的104瓷片电容接VCC(我没有0.47uf的电容) 3、 375的INT#和TXD通过2.2K电阻上拉 4、 晶振是普通的12M 我调用modify_baudrate(0x03,0xcc),这个函数修改375的波特率,但是单片机等不到375的返回操作码,我应该从哪个方面查找原因?
串口发送函数: void CH375_WR_CMD_PORT( uint8 mCmd ) { while (!(UCSRA & (1 << UDRE))); //等待发送缓冲器为空,为1说明缓冲器为空 UCSRB |= (1 << TXB8); //UDRE可以通过写UDR清零 UDR = mCmd; // 将数据放入缓冲器,发送数据 Delay_us(8); }
串口接收: uint8 CH375_RD_DAT_PORT(void) { uint8 rel; uint16 temp; while (!(UCSRA & (1 << RXC))); //等待375的返回操作码 temp = UDR; rel = (uint8)temp; while (UCSRA & (1 << RXC)); return ( rel ); }