|
我想问一下就是我想把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);//清除数据
}
}
}
|
|