本帖最后由 经济建设为中心 于 2022-12-29 23:20 编辑
单片机使用STM32F10RCT6,主频72MHz,使用ST的官方例程,SD卡接口接的是STM32的SD卡口,但是在“读取SD卡的SCR寄存器的内容”
static SD_Error FindSCR(uint16_t rca, uint32_t *pscr) 的过程中总是会卡死在这个while循环里面。
while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND| SDIO_FLAG_STBITERR)))
{
if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET) //接收到的数据是否可用
{
*(tempscr + index) = SDIO_ReadData();
index++;
/* //add。这段在官方源码没有加判断 */
if(index > 1 )
break;
}
}
这能说明什么问题呢?
如果把这个while循环屏蔽掉,就直接用不了
还有一个疑问:接了一个屏幕,屏幕也驱动不起来,这是为什么呢?
硬件应该没啥问题,在这之前也有一些初始化过程,都是SD_OK的。
大佬们帮帮忙
|