急求CH375与单片机串行接法的初始化程序!!!

急求CH375与单片机串行接法的初始化程序!!!

89C51 串口波特率为9600bps 串口工作在工作方式3

只要能写CHECK_EXIST命令后,能返回正确的数据即可.

我的开发环境有限,只想知道自己接的CH375能否与单片机正常通信,首先能排除硬件上的问题.我在这里卡了很久了,不是我懒,只是想参考一下,希望好心人能帮忙一下!

void mInitSTDIO( ) { SCON = 0x50; PCON = 0x80; TMOD = 0x20; TH1 = 0xf3; /* 24MHz晶振, 9600bps */ TR1 = 1; TI = 0; } void CH375_PORT_INIT( ) { SCON = 0xD0; //设置串口为9位数据 //设置波特率和其它串口参数 }

void xWriteCH375Cmd( UINT8 mCmd ) { TI = 0; TB8 = 1; SBUF = mCmd; while ( TI == 0 ); }

void xWriteCH375Data( UINT8 mData ) { TI = 0; TB8 = 0; SBUF = mData; while ( TI == 0 ); }

UINT8 xReadCH375Data( void ) { while ( RI == 0 ); RI = 0; return( SBUF ); }


一开始要不要对CH375设置工作模式? 可以写出一个CHECK_EXIST命令的使用吗?我就不知道在用这命令之前要不要设置什么


不要对375设置模式的,测试命令是检查硬件有没有问题,只有测试命令通过之后再对375设置模式让其工作在主机方式或设备方式,模式才能设置成功.


#include #include

#define GET_STATUS 0x22 #define CHECK_EXIST 0x06 #define RESET_ALL 0x05

void CH375Init(void); void w_Cmd(unsigned char cmd); void w_Data(unsigned char mData); unsigned char r_Data(void); void Delay1s(void); void delay40ms(void);

void main(void) { unsigned char data temp;

Delay1s();

CH375Init(); w_Cmd(CHECK_EXIST); _nop_(); w_Data(0xaa); _nop_(); _nop_(); temp= r_Data(); P1= temp; while(1); }

void CH375Init(void) { delay40ms(); EA= 0; SCON= 0xd0; //´®¿Ú¹¤×÷·½Ê½3 ES= 0; PCON= 0x00; //SMOD= 0

TMOD= 0x20; //¶¨Ê±Æ÷1¹¤×÷·½Ê½2 TH1= 0xfd; TL1= 0xfd;

IT0= 1; //ÍⲿÖжÏ0³õʼ»¯ EX0= 0;

ET1= 0; //¶¨Ê±Æ÷1ÖÐ¶Ï¹Ø TR1= 1; //Æô¶¯¶¨Ê±Æ÷1 EA= 0; }

void w_Cmd(unsigned char cmd) { TI = 0; TB8 = 1; SBUF = cmd; _nop_(); _nop_(); _nop_(); _nop_(); while ( TI == 0 ); }

void w_Data(unsigned char mData) { TI = 0; TB8 = 0; SBUF = mData; _nop_(); _nop_(); _nop_(); _nop_(); while ( TI == 0 ); }

unsigned char r_Data(void) { _nop_(); _nop_(); _nop_(); _nop_(); while(RI==0); RI= 0; return SBUF; }

void Delay1s(void) { unsigned char i; i= 0xf0; while(i){i--;} }

void delay40ms(void) { long i; i= 0x9c40; while(i){i--;} }

这样的测试命令的程序有错吗?发出命令和数据后,单片机没收到CH375发来的测试数据 原理图如下,我把CS#也接了地,INT#接了单片机的INT0 chuck20050810091528%5B1%5D.jpg


串口通信只要接3跟线就可以了,TXD,RXD,INT,具体的接线可以参考CH375DS1上的接线图,程序上没有什么问题,可以给延时减少些看看,可以先测下单片机的串口是不是正常工作了.


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