用STC單片機(jī)串口讀寫CH376T [求助]

這幾天在寫用STC單片機(jī)串口讀寫CH376T的程序,但CH376T一直沒反應(yīng),求各位大俠幫忙~~~ 有沒有人做過,發(fā)個(gè)例子程序,萬分感激??!

以下是串口方式操作Ch376的三個(gè)讀寫子函數(shù),你可以參考一下:

void CH376_PORT_INIT( void ) /* 由于使用異步串口讀寫時(shí)序,所以進(jìn)行初始化 */ { /* 如果單片機(jī)只有一個(gè)串口,那么必須禁止通過串口輸出監(jiān)控信息 */ SCON = 0x50; PCON = 0x80; TMOD = 0x21; TH1 = 0xf3; /* 24MHz晶振, 9600bps */ TR1 = 1; RI = 0; }

#define xEndCH376Cmd( ) /* 結(jié)束CH376命令,僅用于SPI接口方式 */

void xWriteCH376Cmd( UINT8 mCmd ) /* 向CH376寫命令 */ { TI = 0; SBUF = 0x57; /* 啟動(dòng)操作的第1個(gè)串口同步碼 */ while ( TI == 0 ); TI = 0; SBUF = 0xAB; /* 啟動(dòng)操作的第2個(gè)串口同步碼 */ while ( TI == 0 ); TI = 0; SBUF = mCmd; /* 串口輸出 */ while ( TI == 0 ); }

void xWriteCH376Data( UINT8 mData ) /* 向CH376寫數(shù)據(jù) */ { TI = 0; SBUF = mData; /* 串口輸出 */ while ( TI == 0 ); }

UINT8 xReadCH376Data( void ) /* 從CH376讀數(shù)據(jù) */ { UINT32 i;

// RI = 0; for ( i = 0; i < 500000; i ++ ) { /* 計(jì)數(shù)防止超時(shí) */ if ( RI ) { /* 串口接收到 */ RI = 0; return( SBUF ); /* 串口輸入 */ } } return( 0 ); /* 不應(yīng)該發(fā)生的情況 */ } [align=center]文本[/align]


查了一下,程序運(yùn)行到這個(gè)函數(shù)就運(yùn)行不下去了,是什么問題呢?

s = CH376FileOpenPath( buf );

一直停在這里~~


首先確保你之前的初始化正確通過。另外你監(jiān)測(cè)一下s的返回值,是不是你buf文件名有問題?


再查發(fā)現(xiàn)是中斷函數(shù)Wait376Interrupt();的問題,INT中斷沒起作用還是什么的,就停止在這個(gè)函數(shù)里面。 若拔掉INT連線,通過串口查詢的方式則成功讀寫,只是速度比較慢。

但如果是INT引腳的問題,我用軟件模擬SPI的方法讀寫又是成功的,因?yàn)橛媚MSPI的時(shí)候是有用到INT引腳的,所以按道理又不應(yīng)該是INT腳的問題,不解不解~~~

求指點(diǎn)指點(diǎn)!


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频