我在使用freertos fat时提出了这个问题。使用iar编译器和MCU的开发环境使用的是cortex-m4。我使用的是 hal 库,FreeRTOS FAT Config.h 的内容如下:
#define BUS_4BITS 1
#define SDIO_USES_DMA 1
我只生成了一个任务,SDcard write,它以 50hz 写入 400byte,任务如下:
void SDCARD_WRITE_Task(void * pvParameters)
{
uint32_t PreviousWakeTime = 0;
SDcard_Init();
SDcard_SetFileName("FDR","/FDR");
for(;;)
{
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6,GPIO_PIN_SET); //pin high
PreviousWakeTime = osKernelSysTick();
SDcard_Write(ucFileName, SDCARD_Buffer, sizeof(SDCARD_Buffer));
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6,GPIO_PIN_RESET); // pin low
vTaskDelayUntil(&PreviousWakeTime, 20/portTICK_PERIOD_MS );
}
}
PG6,该管脚启动时为高电平,循环结束时为低电平,检查处理时间 SDcard 写入函数内容如下:
SDCARD WRITE 任务示波器结果确认案例测试过程中出现意外时间长度,我设置为50hz写入400byte,但有时需要200~250ms
即使我更改字节长度,问题仍然存在
为什么会出现这个问题?
我有机会用 50hz 写 512bytes 吗?
或者 SD 卡写入的字节或频率是否有任何限制?