CH375B串口工作

接收到的数据老是0X80;不管我mcu的波特率设置什么样子,都能接收到0x80数据,CH375b的波特率我也没改过

收到的数据是0x1;


现在是不管发什么数据都回复0xa7


你用的是什么单片机?还有波特率的误差是多少?还有设置波特率的时候需要注意把数据设置成9位数据方式。位9为1表示命令,位9为0表示数据。上电之后需要延时50MS以上的时间在做测试命令。


stc12c5a60s2 #include "reg51.h" #include "intrins.h" #include "stdio.h" sfr iph=0x87; sfr ip=0x88; sbit P32=P3^2; sbit P07=P0^7; void xWriteCH375Cmd( unsigned int mCmd ) { TI = 0; TB8 = 1; SBUF = mCmd; while ( TI == 0 ); }

void xWriteCH375Data( unsigned int mData ) { TI = 0; TB8 = 0; SBUF = mData; while ( TI == 0 ); } unsigned int xReadCH375Data( ) { while ( RI == 0 ); RI = 0; return( SBUF ); } void shou(){unsigned char m,n;n=0;while(m==0){while(RI==0);m=SBUF;RI=0;}P0=m;P07=RB8;} void fa1(){unsigned char s; unsigned char code str[2]={0x4}; s=0;TB8=0; while(s!=1){SBUF=str[s];TI=0;s++;while(TI==0);}} void fa(){unsigned char s; unsigned char code str[2]={0x1}; s=0;TB8=1; while(s!=1){SBUF=str[s];TI=0;s++;while(TI==0);}}

void timer0(void) interrupt 3

{TH1=0Xfd;TL1=0Xfd;

} void main(void){unsigned int t; TMOD=0X20;SCON=0xd0;PCON=0X00;TH1=0Xfd;TL1=0Xfd;EA=1;TR1=1; while(1){xWriteCH375Cmd(0x6); _nop_();_nop_();xWriteCH375Data(0x43);_nop_(); P0=xReadCH375Data;//查看读到的数据 P1=0;t=1000;while(--t);while(1);}

}现在是发一次命令,回来20个左右的数据,我没示波器


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