求助CH375串口波特率设置问题

我用的单片机+CH375驱动打印机,CH375主机方式下用的串口与单片机相连,默认波特率9600下已经驱动成功,但是我想把波特率设置成1000000,结果驱动不成功,下面是我设置波特率的程序: void USART_Init(void)// 先把单片机的波特率设置成9600 { UCSRA = 0x02; /*倍速*/ UCSRB = 0x1C; /*允许接收和发送,UCSZ2设为1*/ UCSRC = 0x86; /*9位数据,UCSZ1,UCSZ0设为1,这样设置成9位数据*/ UBRRH = 0x00; UBRRL = 0x67; /*设置波特率,9600*/ }

//然后再此波特率下设置CH375的波特率 xWriteCH375Cmd(0x02); xWriteCH375Data(0x03); xWriteCH375Data(0xFA); //设置CH375的分辨率为1M, delay_ms(1);

//最后修改单片机的波特率也为1M,用的AVR单片机 UBRRH=0x00; UBRRL=0x00;

请版主帮我看一下问题出在哪了,非常感谢!

上面的设置本身没什么问题,那么你拿1M的波特率去做测试的时候可以通过吗?还有你那AVR单片机生成的1M的波特率有没有误差?你单片机的频率是多少?


我把波特率设置成115.2K试了下有时候成功,有时候只执行几条指令就停止了。我AVR单片机晶振是8M,1M的时候误差是0%,我后来又继续降低频率76.8K、57.6K、19.2K、都不行,都只能执行几条指令,但9600是正确的。 我一直用串口监视着程序来着。


我说错了,刚才测了一下8M下误差是1.95%,跟这个有关系吧。


波特率误差太大,CH375说明书上面有关于各个波特率的误差大小。


这个单片机是设置不到波特率为1M的


这个单片机为什么设置不到波特率1M啊?我现在改用外部晶振了,已经比较准确了,在500k下可以与单片机通信。设置成1M就不对了。


你自己拿ICCAVR编译器来设置下看可以不可以?你自己仔细看下波特率的参数。


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