ch32v307 硬件SPI 讀寫W25Q64 FLASH的問題
//此處注釋的方法與正在使用的方法除了一個是自減,一個是自增外完全一致,但是注釋的方法卻是錯誤的
static?uint8_t?FLASH_SPI_SendAReceiveByte(uint8_t?data)
{
//????SPITimeout?=?200;
????SPITimeout?=?0;

????while(SPI_I2S_GetFlagStatus(FLASH_SPIx,?SPI_I2S_FLAG_TXE)?==?RESET)//檢測上一個字節(jié)是否發(fā)送完成
????{
//????????SPITimeout--;
//????????if(SPITimeout)
//????????????return?SPI_TIMEOUT_UserCallback(0);
????????SPITimeout++;
????????if(SPITimeout?>?200)
????????????return?SPI_TIMEOUT_UserCallback(0);
????}

????SPI_I2S_SendData(FLASH_SPIx,?data);

//????SPITimeout?=?200;
????SPITimeout?=?0;

????while(SPI_I2S_GetFlagStatus(FLASH_SPIx,?SPI_I2S_FLAG_RXNE)?==?RESET)//檢測是否接受到一個字節(jié)
????{
//????????SPITimeout--;
//????????if(SPITimeout)
//????????????return?SPI_TIMEOUT_UserCallback(1);
????????SPITimeout++;
????????if(SPITimeout?>?200)
????????????return?SPI_TIMEOUT_UserCallback(1);
????}

????return?SPI_I2S_ReceiveData(FLASH_SPIx);
}

上面的代碼,只要把while里面注釋的代碼換成非注釋的,檢測接受的while就會出問題,請大神解答

icon_rar.gifSPI-讀寫FLASH實驗.zip

附上實驗文件,上面的代碼片段在code文件的flash_spi.c文件中,大佬可以看看解答我的疑問

您好,關于if判斷語句的執(zhí)行,當你使用if(SPITimeout)時,只要SPITimeout不為0,就會執(zhí)行return,因此你這個一開始就會執(zhí)行return。若你要使用--,建議if判斷語句改為if(SPITimeout==0),應該就沒問題了。后續(xù)若有問題,可通過郵箱(lzs@wch.cn)和我溝通。


感謝大佬,我大概知道問題所在了


只有登錄才能回復,可以選擇微信賬號登錄

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