第十届蓝桥杯嵌入式赛前准备(二)

2、模块配置

2.1、开发板

2.1.1、LED

头文件
vu16 g_ledstate = 0xffff;

第十届蓝桥杯嵌入式赛前准备(二)_第1张图片
函数文件
第十届蓝桥杯嵌入式赛前准备(二)_第2张图片
第十届蓝桥杯嵌入式赛前准备(二)_第3张图片
第十届蓝桥杯嵌入式赛前准备(二)_第4张图片
IO为PC9-PC15 GPIO_Mode_Out_PP
74HC573控制管脚为PD2 ,GPIO_Mode_Out_PP,高电平时透传,低电平时锁存

2.1.2、KEY

头文件
第十届蓝桥杯嵌入式赛前准备(二)_第5张图片
在这里插入图片描述
单击扫描函数
第十届蓝桥杯嵌入式赛前准备(二)_第6张图片
第十届蓝桥杯嵌入式赛前准备(二)_第7张图片
按键按下的时候,按键的值是0
在这里插入图片描述
单击双击思想
采用状态机思想。
若按下,则将状态记为按下;
若松开,若读取状态为按下,将状态记为松开。
读取flag,若为无活动状态,flag记为按下第一次等待状态;
若为第一次等待状态,按键标志为双击,清除等待时间,flag记为无活动状态;
若flag为第一次等待状态,递增等待时间。若等待时间超过阈值,将按键标志为单击,清除等待时间,将flag记为无活动。
其中等待时间影响单击的反应时间,若记为8,50ms刷新一次,时间为400ms
长按短按思想
按键每隔50ms扫描一次。按下时,若按下次数等于16次,标记长按;松开时,若按下小于16次,标记短按。在松开后,清除按下次数。如要求长按时一直进行置位,则在每次长按标记后,将计数次数改为15次。次数使用静态变量。

上述两种思想产生按键标志位,通过函数刷标志位产生相关操作

2.1.3、BEEP

第十届蓝桥杯嵌入式赛前准备(二)_第8张图片

2.1.4、Variable Resistance

第十届蓝桥杯嵌入式赛前准备(二)_第9张图片在这里插入图片描述
PB0为ADC的通道8

2.1.5、ADC

3.5库->ADC->3ADCs_DMA
需要将adc的时钟6分频降到14M以下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复位
第十届蓝桥杯嵌入式赛前准备(二)_第10张图片
第十届蓝桥杯嵌入式赛前准备(二)_第11张图片

自己写
第十届蓝桥杯嵌入式赛前准备(二)_第12张图片
3.5库->ADC->AnalogWatchdog
在这里插入图片描述

2.1.6、USART?

3.5库->USART->Interrupt
IO口配置
第十届蓝桥杯嵌入式赛前准备(二)_第13张图片
串口配置

第十届蓝桥杯嵌入式赛前准备(二)_第14张图片
中断优先级配置
第十届蓝桥杯嵌入式赛前准备(二)_第15张图片
中断优先级分组配置一次就好
中断服务函数
第十届蓝桥杯嵌入式赛前准备(二)_第16张图片
printf文件下(配合勾选)
在这里插入图片描述
第十届蓝桥杯嵌入式赛前准备(二)_第17张图片
中断

第十届蓝桥杯嵌入式赛前准备(二)_第18张图片
第一次使用清楚发送完成TC标志

在这里插入图片描述

你可能感兴趣的:(蓝桥杯)