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

????while(SPI_I2S_GetFlagStatus(FLASH_SPIx,?SPI_I2S_FLAG_TXE)?==?RESET)//檢測(cè)上一個(gè)字節(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)//檢測(cè)是否接受到一個(gè)字節(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里面注釋的代碼換成非注釋的,檢測(cè)接受的while就會(huì)出問題,請(qǐng)大神解答

icon_rar.gifSPI-讀寫FLASH實(shí)驗(yàn).zip

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

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


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


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

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