2、模块配置
2.1、开发板
2.1.1、LED
头文件
vu16 g_ledstate = 0xffff;
函数文件
IO为PC9-PC15 GPIO_Mode_Out_PP
74HC573控制管脚为PD2 ,GPIO_Mode_Out_PP,高电平时透传,低电平时锁存
2.1.2、KEY
头文件
单击扫描函数
按键按下的时候,按键的值是0
单击双击思想
采用状态机思想。
若按下,则将状态记为按下;
若松开,若读取状态为按下,将状态记为松开。
读取flag,若为无活动状态,flag记为按下第一次等待状态;
若为第一次等待状态,按键标志为双击,清除等待时间,flag记为无活动状态;
若flag为第一次等待状态,递增等待时间。若等待时间超过阈值,将按键标志为单击,清除等待时间,将flag记为无活动。
其中等待时间影响单击的反应时间,若记为8,50ms刷新一次,时间为400ms
长按短按思想
按键每隔50ms扫描一次。按下时,若按下次数等于16次,标记长按;松开时,若按下小于16次,标记短按。在松开后,清除按下次数。如要求长按时一直进行置位,则在每次长按标记后,将计数次数改为15次。次数使用静态变量。
上述两种思想产生按键标志位,通过函数刷标志位产生相关操作
2.1.3、BEEP
2.1.4、Variable Resistance
PB0为ADC的通道8
2.1.5、ADC
3.5库->ADC->3ADCs_DMA
需要将adc的时钟6分频降到14M以下
复位
自己写
3.5库->ADC->AnalogWatchdog
2.1.6、USART?
3.5库->USART->Interrupt
IO口配置
串口配置
中断优先级配置
中断优先级分组配置一次就好
中断服务函数
printf文件下(配合勾选)
中断
第一次使用清楚发送完成TC标志