硬汉嵌入式论坛

 找回密码
 立即注册
查看: 510|回复: 3
收起左侧

[ADC] 请教一个关于ADC数据保存的问题

[复制链接]

18

主题

92

回帖

146

积分

初级会员

积分
146
QQ
发表于 2024-8-2 17:00:11 | 显示全部楼层 |阅读模式
我想问一下就是我想把ADC采集的数据保存到电脑桌面上的TXT文件中有什么好方法吗?

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) // 处理GPIO_PIN_1的中断事件
{
    if (GPIO_Pin == GPIO_PIN_1)
    {
                        if (isDocumentSaving)
        {
            // 如果正在保存文档,则忽略此次中断
            return;
        }
                g_adc3_dma_complete_flag = 1;
    }
}       
////        采集完回调函数
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
        if (hadc->Instance == ADC3)
        {
                g_adc3_dma_complete_flag = 2;
                HAL_ADC_Stop_DMA(&hadc3);
        }
}
  while (1)
  {
                                        if(g_adc3_dma_complete_flag == 1)//检测到上升沿开始启动ADC_DMA
                        {
//                                HAL_Delay(1);
                                HAL_ADC_Start_DMA(&hadc3,g_adc3_dma_data1,ADC_DATA_LENGTH);//ADC的dma开始采集
                                if(g_adc3_dma_complete_flag == 2)
                                {
                                        for(int j=0;j<ADC_DATA_LENGTH;j++)
                                        {
                                                //采集到的值传到上位机串口
                                                printf("%d\r\n",g_adc3_dma_data1[j]&0x000000ff);
                                        }
                                        SaveDocument("C:\\Users\\lx\\Desktop\\shuju.txt");
//                        FILE *file = fopen("C:\\Users\\lx\\Desktop\\shuju.txt","wb");// 打开文件用于写入
//                                        if (file == NULL)
//                                                {
//                                                        break; // 错误处理:文件无法打开
//                                                }
//      
//      fwrite(g_adc3_dma_data1, sizeof(uint32_t), ADC_DATA_LENGTH, file);// 写入数据到文件

//      fclose(file);// 关闭文件
                                        g_adc3_dma_complete_flag = 0;       
                                        memset(g_adc3_dma_data1,0,ADC_DATA_LENGTH);//清除数据       
                               
                                        }                                               
  }
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-8-2 17:07:26 | 显示全部楼层
推荐采用ADC+DMA双缓冲方式,一个缓冲传输的时候,另一个缓冲保存数据到TXT
回复

使用道具 举报

18

主题

92

回帖

146

积分

初级会员

积分
146
QQ
 楼主| 发表于 2024-8-2 17:18:28 | 显示全部楼层
eric2013 发表于 2024-8-2 17:07
推荐采用ADC+DMA双缓冲方式,一个缓冲传输的时候,另一个缓冲保存数据到TXT

嗯,硬汉哥,主要是我现在这个代码都没法保存,我不知道是什么原因?有没有例程参考呀
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-8-3 07:58:11 | 显示全部楼层
不吃鱼的猫大人 发表于 2024-8-2 17:18
嗯,硬汉哥,主要是我现在这个代码都没法保存,我不知道是什么原因?有没有例程参考呀

文件系统读写的例子有做,FileX,FatFS和RL-FlashFS都有。

系统的谈下STM32H7的SD卡驱动兼容性问题,现在兼容性很强,主流厂家16GB以上容量全部通过(2022-03-15)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=107689
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-29 03:03 , Processed in 0.228166 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表