#ifdef SDIO_STA_STBITERR
while(!__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND | SDIO_FLAG_STBITERR))
#else /* SDIO_STA_STBITERR not defined */
while(!__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND))
#endif /* SDIO_STA_STBITERR */
{
if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_RXDAVL))
{
*(tempscr + index) = SDIO_ReadFIFO(hsd->Instance);
index++;
}
}
if(__HAL_SD_SDIO_GET_FLAG(hsd, SDIO_FLAG_DTIMEOUT))
{
__HAL_SD_SDIO_CLEAR_FLAG(hsd, SDIO_FLAG_DTIMEOUT);
errorstate = SD_DATA_TIMEOUT;
return errorstate;
}
请问怎么分析错误。( @arg SDIO_FLAG_RXDAVL: Data available in receive FIFO)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
原子哥您好,上面的问题已经解决了。还有个问题想请教您,500SPS的采样速率,每次采样输出27字节数据,也就是2ms采集一次27字节数据。如果每2ms进行一次SD存储会出现严重的数据丢失。请问原子哥还有其他好的方法吗?
500*27=13.5KB/S
速度不快,你不要2ms写一次SD卡,建议你满2KB或者1KB,写一次SD卡,其他时间用内存缓存起来。这样就可以了。
一周热门 更多>