STM32记录按键时刻输出Excel文件到SDFlash

一、模拟时钟:

定义变量: uint16_t hour = 10;

uint16_t min = 14;

uint16_t sec = 15;

分别存放时分秒,初始化,并做外部声明,供其他函数使用;

初始化定时器TIM7,开启中断,配置为1S进一次中断:

STM32记录按键时刻输出Excel文件到SDFlash_第1张图片

在中断服务函数中对时间变量进行模拟时钟计时,完成模拟时钟;

STM32记录按键时刻输出Excel文件到SDFlash_第2张图片

二、外部中断按键检测:

开启外部中断后,检测四个按键状态

STM32记录按键时刻输出Excel文件到SDFlash_第3张图片

检测到对应按键按下后,将键值赋值给cmd (cmd已做extern 声明);

按键1按下则赋值1,以此类推。

三、将对应键值及按键时刻输出Excel文件到SDFlash:

Excel文件输出函数:key为调用时处理函数传入的键值;

STM32记录按键时刻输出Excel文件到SDFlash_第4张图片

将按键键值及按键时刻输出到同一文件KEY Pressed Time.xls;

输出格式为:按键x按下,时间:10:14:00;

Result为输出结果判断变量,等于0即成功,等于0输出ok;

 

主函数:

STM32记录按键时刻输出Excel文件到SDFlash_第5张图片

主函数处理函数DemoEXCEL:

STM32记录按键时刻输出Excel文件到SDFlash_第6张图片

Cmd初始值为0,

检测到不为0时(即外部中断服务函数中赋按键值之后),输出当前键值和按键时刻到Excel文件;完成要求。

四、运行结果:

按下如下按键1224313411,串口输出如下:

STM32记录按键时刻输出Excel文件到SDFlash_第7张图片

生成的Excel文件内容如下:

STM32记录按键时刻输出Excel文件到SDFlash_第8张图片

结果与预期结果相同,程序正确。

 

 

 

你可能感兴趣的