CH565循環(huán)進(jìn)行SPI0通訊和串口打印只有一次起作用

采樣如下代碼,發(fā)現(xiàn)串口那邊只進(jìn)行了一次打印。

while(1)

? ?{

? ? ? EraseExternal4KFlash_SPI(0);

? ? ? BlukWriteExternalFlash_SPI(0,255,SendBuf);

? ? ? BlukReadExternalFlash_SPI(0,255,RxdBuf);

? ? ??

? ? ? for(i=0; i<=255; i++)

? ? ? {

? ? ? ? ?printf("%d ",(UINT16)RxdBuf[i]);

? ? ? }

? ? ? printf("\r\n打印結(jié)束\r\n");? ?

? ?}


? ? ? ?記得上次寫自己編譯的延時(shí)函數(shù)的時(shí)候,延時(shí)里面就是空跑數(shù)據(jù),也沒有起到作用。FAE跟我說的可能代碼被優(yōu)化掉了,會(huì)不會(huì)這個(gè)循環(huán)執(zhí)行串口打印的也會(huì)被優(yōu)化掉,想咨詢下FAE,后臺(tái)優(yōu)化大概是參照什么標(biāo)準(zhǔn)執(zhí)行。

? ? ? ?我們自己編寫的代碼,哪些會(huì)被優(yōu)化,哪些會(huì)被保留。是不是存在很大風(fēng)險(xiǎn),自己無法做出一個(gè)有效判斷了。


for循環(huán)打印數(shù)組是我們常用的方式,要注意的是printf內(nèi)部的處理是有緩沖區(qū)概念的,遇到‘\n’才會(huì)實(shí)際輸出,要注意循環(huán)的次數(shù)不要過多,類似每32、64字節(jié)輸出一個(gè)換行符。

還有就是把SPI相關(guān)的操作去掉,排除是否卡在了SPI相關(guān)代碼中,再看一下程序運(yùn)行結(jié)果。


謝謝,重新修改了下程序,把程序的printf每32個(gè)字節(jié),加入一個(gè)換行符號(hào),去掉SPI的所有函數(shù),可以實(shí)現(xiàn)循環(huán)打印的功能。


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

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