i = CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ 返回i=0x81;并口模式,檢查硬件按3.3V示例圖連接正確,25 26腳 晶振都正常,電源,GND也正常,做測試命令始終返回OXFF, while(1){ xWriteCH375Cmd( 0x06 ); xWriteCH375Data( 0x57 ); i= xReadCH375Data(); a[0]=i; UARTSend_BYTE(0,a[0]); // mDelaymS(5); }循環(huán)測試,CS,WR等管腳用示波器看不到高低電平變化,新手緊急求助,謝謝
寫命令程序,是不是時序的問題?。烤o急求助 謝謝 void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時1uS */ FIO1CLR |= 0x0FF00000; /* 清并口輸出 */ FIO1SET |= ( (UINT32)mCmd << 20 ) ; FIO0SET |= 0x20000000; /* 向CH375的并口輸出數(shù)據(jù), 輸出A0(P0.4)=1; */ FIO1DIR |= 0x0FF00000; /* 寫操作所以數(shù)據(jù)輸出 */ FIO1DIR |= 0x30080000; FIO0DIR |= 0x20000000; /* 設(shè)置CS,WR,RD,A0為輸出 */ FIO1CLR |= 0X30000000; /* 輸出有效寫控制信號, 寫CH375芯片的命令端口, A0(P0.4)=1; CS(P0.7)=0; WR=(P0.6)=0; RD(P0.5)=1; */ FIO1DIR = FIO1DIR; FIO1DIR = FIO1DIR; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ FIO1SET |= 0x30080000; /* 輸出無效的控制信號, 完成操作CH375芯片, A0(P0.4)=1; CS(P0.7)=1; WR=(P0.6)=1; RD(P0.5)=1; */ FIO0CLR |= 0x20000000; /* 輸出A0(P0.29)=0; 可選操作 */ FIO1DIR &= 0xF00FFFFF; /* 禁止數(shù)據(jù)輸出 */ mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延時2uS */ }
1、電容值是不是在給定范圍內(nèi)2、用示波器對應(yīng)我們手冊看看時序是不是正確,估計是時序有錯,根據(jù)你的程序尤其檢查下CS和WR拉低時的時序,總之,認真檢查時序
電容值?是對應(yīng)晶振的電容嗎?我選用的10PF的電容。還有用示波器看CS和WR,根本看不到CS和WR置低過啊,始終處于高電平狀態(tài)
用cpu總線多好,就算時序不對也好改。(不過我用2214的總線時序是沒問題的)
用cpu總線多好,就算時序不對也好改。(不過我用2214的總線時序是沒問題的)
CS和WR拉不低的話,說明是你單片機的問題,這個得你得自己好好檢查
你好,再次緊急求助,現(xiàn)在做測試命令,取反已經(jīng)正常,是不是說明硬件沒問題啊,可調(diào)用 i = CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ UARTSend_BYTE(0,i); mStopIfError( i );還是返回錯誤,i還是0X81?怎么回事呢