初级会员
- 积分
- 170
- 金钱
- 170
- 注册时间
- 2023-5-13
- 在线时间
- 28 小时
|
15金钱
群里的大佬,前辈好,希望有时间可以看看我的问题,最近搞得挺苦恼,诚恳请教。我是利用STM32F103单片机的ADC的双通道采集电压值,然后将电压值通过文件系统和SDIO写入SD卡。目前我可以采集,就是写入是个问题。我采集的数据是电压值 转换过来是1.234这种的浮点数。因为是采集,所以要保证采样率 是1秒钟10K个数字。目前采集可以保证1秒钟10K个数字。就是不知道怎么保存。目前想通过文件系统和SDIO写入SD卡,目前可以单次写入静态数据,关于动态的采集数据应该怎么保存呢?这种方式能否保证1秒钟10K的采样率? 下面是我的代码和运行结果- //ADC电压值
- extern __IO uint16_t ADC_ConvertedValue[2];
- //测试数据值
- float ADC_Value_Two[2]={1.234,2.234};
- //float value = 1.234;
- FATFS fs; //Read SD card physical value
- FIL fnew; //File properties
- FRESULT res_sd; //Return Error
- UINT fnum;
- BYTE ReadBuffer[1024]={0};
- char WriteBuffer[4096]={0};
- extern SD_CardInfo SDCardInfo;
- int main(void)
- {
- ALL_init();
- sprintf(WriteBuffer,"%.4f",ADC_Value_Two[0]);
- sprintf(WriteBuffer,"%.4f",ADC_Value_Two[1]);
- /*f_mount*/
- res_sd = f_mount(&fs,"0:",1);
- /*f_write*/
- f_open(&fnew, "0:FatFs读写测试.txt",FA_CREATE_ALWAYS|FA_WRITE );
- while(1)
- {
- if(flagTime) //1s Test
- {
- f_lseek(&fnew,f_size(&fnew));
- res_sd = f_write(&fnew,WriteBuffer,sizeof(WriteBuffer),&fnum);
- f_sync(&fnew);
- }
- }
- }
复制代码
|
|