請(qǐng)教!急!主機(jī)模式,返回錯(cuò)誤碼為1F

請(qǐng)教技術(shù)人員: 我的系統(tǒng)是CH375+STC90C58AD, 當(dāng)我的程序只實(shí)現(xiàn)主機(jī)模式的功能是,能順利的完成U盤(pán)的讀寫(xiě)。但是當(dāng)我地程序是同時(shí)實(shí)現(xiàn)主機(jī)和設(shè)備模式功能是,當(dāng)讀U盤(pán)的時(shí)候,運(yùn)行到打開(kāi)文件后,就返回錯(cuò)誤代碼:1F; 請(qǐng)問(wèn),這是什么原因?是不是和兩種模式一起實(shí)現(xiàn)的時(shí)候,單片機(jī)的RAM不夠大有關(guān)系的,在主機(jī)程序中,我把 #define DISK_BASE_BUF_LEN 4096 改成了 #define DISK_BASE_BUF_LEN 8192 ,這樣會(huì)產(chǎn)生影響么?在我沒(méi)改這個(gè)量的時(shí)候,主機(jī)模式運(yùn)行到 “檢查磁盤(pán)數(shù)據(jù)緩沖區(qū)是否足夠大” 就執(zhí)行不下去了,我改了之后就可以執(zhí)行下去。但是,就變成了出現(xiàn)現(xiàn)在的情況,返回錯(cuò)誤代碼:1F; 請(qǐng)指導(dǎo)!

ram定義這么大肯定是不行的。 這個(gè)單片機(jī)一共多少RAM?你編譯出來(lái),看看RAM占用多少,如果超過(guò)了MCU的RAM,肯定會(huì)出現(xiàn)問(wèn)題的。 #define DISK_BASE_BUF_LEN 512 就可以了。 出現(xiàn)檢查緩沖區(qū)是否足夠大是其他錯(cuò)誤造成的,一般不要去修改這個(gè)變量。


哦,我 MCU 的 RAM 是 4K+256 字節(jié)啊,看編譯出來(lái)是多少 RAM 的話(huà)是不是看編譯器下面信息欄那里的 xdata 的?現(xiàn)在編譯出來(lái)的 xdata是 67613 ,code=11059, data=125.5 。那現(xiàn)在我的情況是不是超過(guò)了MCU 的RAM呢?

然后,另外一個(gè)是,我的外部RAM是32K的,在定義兩種模式的起始地址時(shí),是不是也要有所注意的?這個(gè)怎樣去判斷地址是否給得合適呢? 然后這個(gè)情況的話(huà)和 #define&nbspDISK_BASE_BUF_LEN &nbsp8192 的定義有關(guān)系么?是怎樣的關(guān)系呢?


1、做主從模式切換時(shí),連接U盤(pán)或PC,都必須斷開(kāi)另一方 2、DISK_BASE_BUF_LEN只要和U盤(pán)的扇區(qū)大小一致就可以了,不需要定義那么大,監(jiān)控一下CH375vSectorSize是多少?現(xiàn)在外部RAM已經(jīng)溢出了,程序可能跑飛 至于地址,由編譯器自動(dòng)分配,不需要你去關(guān)心


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

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