求解,開始測試時,讀取返回值低位按位取反,高位為零!

剛開始調(diào)CH375B,測試時測了好幾個數(shù)都是低位是取反的,高位是0,如0x77,讀取后為0x08,麻煩解答下

程序如下:

#define ?USB_A0 ? LATG1

#define ?USB_CS ? LATG2

#define ?USB_RD ? LATG3

#define ?USB_WR ? LATG4


#define CMD_TEST_CONNECT 0x16

#define CMD_DISK_INIT 0x51

#define CMD_DISK_RESET 0x52

#define CMD_DISK_SIZE 0x53

#define CMD_DISK_READ 0x54

#define CMD_RESET_ALL 0x05

#define CMD_CHECK_EXIST 0x06

#define CMD_SET_USB_MODE 0x15

#define CMD_GET_STATUS 0x22

#define USB_INT_SUCCESS 0x14

#define USB_INT_CONNECT 0x15

void CH375_WR_CMD_PORT( unsigned char Index ) ?/* 寫索引地址 */

{

? ? delay_1us();

? ? delay_2us();

? ? LATH=Index;

? ? USB_A0=1;

? ? USB_CS=0;

? ? //USB_RD =1;

? ? USB_WR=0;

? ? USB_CS=0; ? //無意義

? ? USB_WR=1;

? ? USB_CS=1;

? ? USB_A0=0;

? ? delay_2us();

? ? delay_2us();

}


void CH375HM_DATA_WR( unsigned char Data ) ?/* 寫數(shù)據(jù) */

{

? ? delay_2us();

? ? delay_1us();

? ? LATH=Data;

? ? USB_A0=0;

? ? USB_CS=0;

? ? USB_WR=0;

? ? USB_CS=0; ? //無意義

? ? USB_WR=1;

? ? USB_CS=1;

? ? delay_1_2us();

? ? delay_2us();

}


unsigned char CH375_RD_DAT_PORT( ) /* 讀數(shù)據(jù) */

{

? ? unsigned char mData;

? ? delay_2us();

? ? delay_1_2us();

? ? TRISH=0xff; ? ? //設(shè)置為輸入讀取數(shù)據(jù)

? ? USB_A0=0;

? ? USB_CS=0;

? ? USB_RD=0;

? ? USB_CS=0; ? //無意義

? ? mData=PORTH;

? ? USB_RD=1;

? ? USB_CS=1;

? ? TRISH=0x00; ?//設(shè)為輸出

? ? delay_2us();

? ? delay_2us();

? ? return mData;

}


void main() {

? ? init_ccp3();

? ? init_IO();

? ? mDelay100mS( ); ?/* 延時100毫秒,CH375模塊上電后需要100毫秒左右的復(fù)位時間 */

? ? mDelay100mS( );

? ? mDelay100mS( );

? ? mDelay100mS( );

? ? mDelay100mS( );

? ? mDelay100mS( );

? ? CH375HM_INT_EN=1; ? //開中斷

? ? //CH375_WR_CMD_PORT(0x51);

? ? //CH375_WR_CMD_PORT(0x53);

? ? temp=0xaa;

? ? CH375_WR_CMD_PORT(CMD_CHECK_EXIST);

? ? CH375HM_DATA_WR( 0x77 ) ;

? ? tmp1=CH375_RD_DAT_PORT( );

? ? delay_2us();

? ? while(1)

? ? {}

}


你好,這種情況,你可以檢查一下你并口數(shù)據(jù)的位7物理連接是否正常,可以使用示波器觀察在WR=0時,位7的數(shù)據(jù)線上是否送1、送0都能成功。這個比較有規(guī)律,先保證物理連接正常。


你好!我測了WR=0時是可以寫0、1的,麻煩問下還有可能是什么原因?謝謝!


你好:

根據(jù)你前面描述應(yīng)該是比較有規(guī)律的,首先你可以多是一些數(shù)據(jù)看看是否只有位7不能翻轉(zhuǎn),保證現(xiàn)象穩(wěn)定。

第二,檢查確認(rèn)問題時,最好使用示波器觀察在WR=0和RD=0時,位7真實狀態(tài),避免軟件錯誤。

第三,都確認(rèn)沒有問題后還是不行,嘗試換一片ch375試試或者使用串口通訊(可以用電腦測試)試試。



你好!謝謝回復(fù),我再試下,再麻煩問下,并口需不需要加上拉電阻,我的單片機是3.3V的。


你好,一般不需要加上拉,ch375B內(nèi)部有上拉,,如果外加有可能會因上拉過強導(dǎo)致通訊出錯,最好去掉。


好的,謝謝,問題已解決,是我的單片機配置的問題。


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

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