一个测试连接的问题

刚开始用CH375,单片机与CH375是串口连接,想用CMD_CHECK_EXIST 测试一下CH375是否正常工作,代码节选如下: 当我在main函数下单步运行到RD_Data = xReadCH375Data()时,就执行不下去了,停在那里,请问是不是意味着我的硬件连接有问题?还是有其它的可能? 谢谢~~

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 ); }

for( k=100; k!=0; k-- ) { xWriteCH375Cmd( CMD_CHECK_EXIST ); /* 测试CH375是否正常工作 */

l = 0x5A; xWriteCH375Data( l ); /* 写入测试数据 */ l = ~l; /* 返回数据应该是测试数据取反 */ RD_Data = xReadCH375Data(); if ( RD_Data != l ) /* CH375不正常 */ { for ( l=5; l!=0; l-- ) { xWriteCH375Cmd( CMD_RESET_ALL ); /* 多次重复发命令,执行硬件复位 */ } mDelay100mS( ); } else break; } if( k==0 ) { while(1) { aa=1; } }

停在那那有没有读出数据呢? 要没有读出数据那看串口设置有没有问题


一般读不出来数据,和你的串口通信有关系,检查下你的串口的设置,包括波特率的设置(375默认的波特率是9600,那你的单片机的波特率是否为9600?)


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