[求助]初次调试375,一天了,没有进展,hcn来帮帮我!

单片机: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 ); }

单片机与375串口通信的话只能用于做主机,并且以9位数据进行通信,命令和数据之间以TXB8来区分。 你在发出修改375波特率的命令之后应及时调整自身的通讯波特率。


首先你做下测试命令看通信正常不正常


我现在测试了一下,375发回来的数据不是9位 是10位啊?? 这个是怎么会是呢,我的就是这个原因导致单片机接收不到中断。我的是3。3V供电的。


数据的返回只有在你的命令发下去之后以及375正确的接收到数据之后才会给你返回数据,按照你说的已经正确返回0XAA的话,在说返回10位数据,那就要仔细的检查下你的串口的配置之类的


只有登录才能回复,可以选择微信账号登录