用STC单片机串口读写CH376T [求助]

这几天在写用STC单片机串口读写CH376T的程序,但CH376T一直没反应,求各位大侠帮忙~~~ 有没有人做过,发个例子程序,万分感激!!

以下是串口方式操作Ch376的三个读写子函数,你可以参考一下:

void CH376_PORT_INIT( void ) /* 由于使用异步串口读写时序,所以进行初始化 */ { /* 如果单片机只有一个串口,那么必须禁止通过串口输出监控信息 */ SCON = 0x50; PCON = 0x80; TMOD = 0x21; TH1 = 0xf3; /* 24MHz晶振, 9600bps */ TR1 = 1; RI = 0; }

#define xEndCH376Cmd( ) /* 结束CH376命令,仅用于SPI接口方式 */

void xWriteCH376Cmd( UINT8 mCmd ) /* 向CH376写命令 */ { TI = 0; SBUF = 0x57; /* 启动操作的第1个串口同步码 */ while ( TI == 0 ); TI = 0; SBUF = 0xAB; /* 启动操作的第2个串口同步码 */ while ( TI == 0 ); TI = 0; SBUF = mCmd; /* 串口输出 */ while ( TI == 0 ); }

void xWriteCH376Data( UINT8 mData ) /* 向CH376写数据 */ { TI = 0; SBUF = mData; /* 串口输出 */ while ( TI == 0 ); }

UINT8 xReadCH376Data( void ) /* 从CH376读数据 */ { UINT32 i;

// RI = 0; for ( i = 0; i < 500000; i ++ ) { /* 计数防止超时 */ if ( RI ) { /* 串口接收到 */ RI = 0; return( SBUF ); /* 串口输入 */ } } return( 0 ); /* 不应该发生的情况 */ } [align=center]文本[/align]


查了一下,程序运行到这个函数就运行不下去了,是什么问题呢?

s = CH376FileOpenPath( buf );

一直停在这里~~


首先确保你之前的初始化正确通过。另外你监测一下s的返回值,是不是你buf文件名有问题?


再查发现是中断函数Wait376Interrupt();的问题,INT中断没起作用还是什么的,就停止在这个函数里面。 若拔掉INT连线,通过串口查询的方式则成功读写,只是速度比较慢。

但如果是INT引脚的问题,我用软件模拟SPI的方法读写又是成功的,因为用模拟SPI的时候是有用到INT引脚的,所以按道理又不应该是INT脚的问题,不解不解~~~

求指点指点!


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