我用CH375做主机,用的它的串口,单片机是AVR的ATmega8,我参照贵网站上的51单片机与CH375通过串口进行通讯的例子编写了CH375读写数据的3个程序,请版主帮我看下对不对,我驱动不了打印机了,原来用并口已经调通了。 //串口初始化子程序 void USART_Init(void) { UCSRA = 0x02; /*倍速*/ UCSRB = 0x1C; /*允许接收和发送,UCSZ2设为1*/ UCSRC = 0x86; /*9位数据,UCSZ1,UCSZ0设为1,这样设置成9位数据*/ UBRRH = 0x00; UBRRL = 0x00; /*设置波特率,1M*/ } void xWriteCH375Cmd(unsigned char mCmd) { delay_2us( ); /*至少延时2us*/ TXCIE==0; TXB8==1; //第九位为1写命令,为0写数据 UDR=mCmd; while(TXCIE==0); } void xWriteCH375Data(unsigned char mData) { delay_2us( ); /*至少延时2US*/ TXCIE==0; TXB8==0; //第九位为0,写数据 UDR=mData; while(TXCIE==0); } unsigned char xReadCH375Data(void) { //unsigned char temp; delay_2us( ); /*至少延时1.2us*/ while(RXCIE==0); RXCIE==0; return(UDR); }
查看: 4255
回复: 5
急!求助CH375串口通讯
热门产品 :
CH390:以太网控制器芯片
波特率是1M啊?CH375的默认波特率是9600,不匹配阿
我在主程序main中通过SET_BAUDRATE命令已经设置成1M了, xWriteCH375Cmd(0x02); xWriteCH375Data(0x03); xWriteCH375Data(0xFA);
单片机必须先在9600下给375设置新的波特率 刚开始调试,为什么用这么高的波特率,这不是增加了不稳定的因素了,还是现在9600下调试通过后,再改吧
改成了9600还是没反应,
1、检查375的晶振,复位是否正常 2、现在问题处在哪一步了?先做测试命令,确保串口通讯是正常的 还有用示波器看下单片机的串口能否发出数据,且波特率对不对 另,串口模式下,TXD不能接地
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录