基于STM32与influxDB的电力监控系统-6
前言:
修改main.c文件,实现将负载电流和电压数据写入SD卡的功能,文件名带时间戳,数据格式为:日期时间,负载电压,负载电流。
一、修改思路
1.1、全局变量
-
增加记录状态标志:uint8_t g_record_enable = 0;
-
增加文件对象:FIL g_file;
-
增加文件名数组:char g_filename[32];
-
增加一个变量来记录上次记录的时间(用于控制记录频率,比如每秒记录一次)。如是没有要求记录频率,我们可以每次ADC采集完成并计算后记录一次,但注意不要写得太频繁,以免影响系统性能。我们可以选择每采集10次记录一次,或者根据时间间隔记录(比如1秒记录一次)。这里我们选择每采集10次记录一次,同时也可以根据时间间隔(比如1秒)记录,我们选择时间间隔记录,因为时间戳是秒级的,每秒记录一次即可。
1.2、修改主循环
-
在FATFS页面,按键KEY0用于切换记录状态。
-
在记录状态下,且到达记录时间(比如每秒记录一次),则打开文件(如果还没有打开),写入数据,然后关闭文件(或者保持打开,每次写入后刷新?)。为了减少文件操作频繁,我们可以在开始记录时打开文件,停止记录时关闭文件,期间每次写入数据后使用f_sync刷新。
1.3、数据记录格式