电路: STC89C52单片机 -----CH375 INT0 ---INT# TXD--RXD RXD-TXD
STC89C52单片机和CH375使用12M晶体,30P电容 CH375 ,9脚接0.01U电容,1-2脚接0.1U电容 5V供电. STC89C52单片机和CH375的通讯速率如何设置啊!? 大师给个例程
电路: STC89C52单片机 -----CH375 INT0 ---INT# TXD--RXD RXD-TXD
STC89C52单片机和CH375使用12M晶体,30P电容 CH375 ,9脚接0.01U电容,1-2脚接0.1U电容 5V供电. STC89C52单片机和CH375的通讯速率如何设置啊!? 大师给个例程
游人回复吗?
UploadImages/20077261342994.rar
这是串口方式读写U盘物理扇区的例子,你看一下。 375默认的波特率是9600,开始必须将单片机波特率设置为9600才能通信,如果要修改波特率的话,可以通过SET_BAUDRATE修改,紧接着修改单片机的波特率。
谢谢啊啊
luoye268268 你好 ,谢谢你的程序 .相信你是测试了。 但还是不行啊。单片机波特率设置:void mInitSTDIO( ) { SCON = 0xD0; PCON = 0x80; TMOD = 0x20; TH1 = 0xf9; /*12MHz晶振, 9600bps */ TR1 = 1; TI = 1; CH375设置如下:void CH375_PORT_INIT( ) { SCON = 0xD0; //设置串口为9位数据 PCON = 0x80; TMOD = 0x20; TH1 = 0xf9; /* 12MHz晶振, 9600bps */ TR1 = 1; TI = 1; 程序摘要: unsigned char mCH375Init( ) { unsigned char i;
#ifdef TEST_CH375_PORT unsigned char c; LED_15ON(); mDelay100mS( ); /* 延时至少30mS */ LED_15OFF(); CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 测试工作状态 */ CH375_WR_DAT_PORT( 0x55 ); /* 测试数据 */ LED_16ON(); c = CH375_RD_DAT_PORT( ); /* 返回数据应该是测试数据取反 */ LED_16OFF(); // printf("C:%x\n",(unsigned short)c); if ( c != 0xaa ) { /* CH375出错 */ for ( i = 100; i != 0; i -- ) { /* 强制数据同步 */ CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* CH375执行硬件复位 */ c = CH375_RD_DAT_PORT( ); /* 延时 */ } mDelay100mS( ); /* 延时至少30mS */ LED_15OFF(); LED_16ON(); } #endif
程序执行到 LED_160N(); P1.6灯亮 ,就不在执行了.(因为P1.6灯没有灭!) c = CH375_RD_DAT_PORT( ); /* 返回数据应该是测试数据取反 */ LED_16OFF();
你的波特率的误差太大了!你可以换成11。0592的晶振去试下看。TH1的值为0XFA
分别使用11.0952M 和24M 晶体 故障依旧啊。 无法测到CH375 晶振波形 但26脚=1 ,25脚=0 对吗
能提供89C52串口通讯的CH375的电路图吗> 怀疑电路有问题1/?
串口接线参考CH375DS1.PDF中的P13页的电路连接即可。