大家好!我用的是STC90C58AD,通過(guò)CH375讀U盤時(shí),串口顯示U盤為空,不知是何原因,請(qǐng)大家指教,多謝多謝!!
串口顯示為空是什么意思呢?是用的庫(kù)來(lái)操作的嗎?
其實(shí)用的是從網(wǎng)上下的一個(gè)小寫字母轉(zhuǎn)大寫字母的例子程序,就是執(zhí)行到下面的程序時(shí),我讓計(jì)算機(jī)通過(guò)串口監(jiān)控演示過(guò)程,就顯示"Too large sector size",程序就死到這了。后來(lái)我把這段跳過(guò),直接查了U盤容量,串口又顯示為”0MB“。不知道是為什么?苦惱啊苦惱。。。。
#if DISK_BASE_BUF_LEN if ( DISK_BASE_BUF_LEN < CH375vSectorSize ) { /* 檢查磁盤數(shù)據(jù)緩沖區(qū)是否足夠大,CH375vSectorSize是U盤的實(shí)際扇區(qū)大小 */ printf( "Too large sector size\n" ); while ( CH375DiskConnect( ) == ERR_SUCCESS ) mDelay100mS( ); continue; } #endif
那說(shuō)明你的U盤是一個(gè)大扇區(qū)的U盤,需要磁盤緩沖區(qū)為你U盤一個(gè)扇區(qū)的大小,默認(rèn)我們的磁盤緩沖區(qū)為512字節(jié)
多謝!我用的是4GU盤。用實(shí)驗(yàn)室買的板子做實(shí)驗(yàn)室,U盤可以進(jìn)行正常讀寫的。那我該怎么改呢?
這個(gè)需要你檢查一下CH375DiskReady是不是正常返回成功的。如果沒(méi)返回成功,則往上查,看返回的錯(cuò)誤代碼是多少。 參考代碼里是循環(huán)幾次跳轉(zhuǎn)出來(lái)的,但是一般來(lái)說(shuō)要返回成功才可以。 STC90C58AD這個(gè)MCU的RAM 多大?編譯后,實(shí)際占用的RAM是否超過(guò)了單片機(jī)實(shí)際的RAM?