返回0x51說明命令操作已經(jīng)成功了,那你后面檢測U盤連接和磁盤初始化有沒有正常通過?
中斷處理出錯了,不要第一個if(S2CON&0x01),否則就會在接收時進入死循環(huán) void Uart2() interrupt 8 using 1 { if(S2CON&0x02) { S2CON&=~0x02; //清除S2TI位 Uart2Busy= 0; } }
檢測U盤連接和磁盤初始化沒有正常通過,返回了0x51,但是INT電平是1.1V,對此我把我的原理圖發(fā)到你郵箱了。請幫忙看下~
看了你的原理圖,中斷引腳那塊連接有問題,已在郵件里回復(fù)。
謝謝,已經(jīng)看到了,請問這個串口用的庫函數(shù)是CH375HF9.H,還是CH375HF4.H?
串口屬于非總線方式,你可以使用CH375HF5或者CH375HFC這兩個庫,我們沒有CH375HF9,具體你可以看一下CH375HF.PDF
現(xiàn)在初始化CH375,有問題!測試指令,返回來的確實是51,根據(jù)您的意思已經(jīng)把硬件電路修改了。
這說明硬件電路沒有問題,你的lib庫添加進去能正常操作了嗎?
解決了,謝謝,還是硬件的問題?,F(xiàn)在初始化通過了,我現(xiàn)在在U盤里面創(chuàng)建TXT文件,但是沒有成功,請問 調(diào)用這個i= CH375FileCreate( );不成功,這個有可能是什么別的原因嗎?
i返回值是多少?文件名需要大寫符合8+3格式。
返回值是0,文件名/MY_ADC.TXT uchar path[]="/MY_ADC.TXT"; uchar charCount=0; uchar i=0; uint paraTemp=100,pidout=5000,iival=220; //獲取時間---------------------------------------------------------------- //一天記錄一個文件 // PCF8563_rd_time(); path[1]=time.year/10+'0'; path[2]=time.year%10+'0'; path[3]=time.month/10+'0'; path[4]=time.month%10+'0'; path[5]=time.day/10+'0'; path[6]=time.day%10+'0'; //寫文件------------------------------------------------------------------ strcpy((char *) mCmdParam.Create.mPathName, path); //"/AM10.TXT"
// RESULT = CH375FileOpen( ); RESULT= CH375FileCreate( ); if(RESULT== ERR_SUCCESS) { UART_Send_Byte(RESULT); mCmdParam.ByteLocate.mByteOffset = 0xffffffff; //移到文件的尾部 RESULT = CH375ByteLocate( ); } else { UART_Send_Byte(RESULT); // i = CH375FileCreate( ); //新建文件并打開,如果文件已經(jīng)存在則先刪除后再新建 }
charCount = sprintf( mCmdParam.ByteWrite.mByteBuffer,"20%02d-%02d-%02dT%02d:%02d:%02d,%3.1f,%f,%ld,0,0\r\n",time.year,time.month,time.day,time.hour,time.minute,time.second, (float)paraTemp/10,(float)pidout,iival); mCmdParam.ByteWrite.mByteCount = charCount; RESULT = CH375ByteWrite( ); RESULT = CH375FileClose( ); //數(shù)據(jù)錄入
補充上面,編譯成功后有報警提示: *** WARNING L14: INCOMPATIBLE MEMORY MODEL MODULE: .\CH375HF5.LIB (CH375SEC) MODEL: SMALL 我用的MEMORY MODEL 是large model
返回值為0是正確的,你先用uchar path[]="/MY_ADC.TXT";創(chuàng)建試一下不要賦值。你 path[6]=time.day%10+'0'不是把'.'代替了嗎?文件名就不對了?
現(xiàn)在解決了。不過添加了庫之后,工程xdata溢出了,有沒有辦法解決這個問題呢?
xdata溢出不是你添加了庫造成的,而是因為你定義了磁盤緩沖區(qū)和文件緩沖區(qū)占用了RAM,你可以不定義文件緩沖區(qū),使用雙緩沖區(qū)交替讀寫減少RAM。