蓝桥杯大赛-嵌入式-基本模块快速总结

【模块一】LCD

Lcd液晶驱动函数的改写

蓝桥杯大赛-嵌入式-基本模块快速总结

添加头文件 #include "stdio.h"

格式化显示

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

 

 

 

 

 

 

 

 

 

 

【模块二】LED

void LED_Init(void);

void LED_Control(u16 LED, u8 Status);

void LED_Toggling(u16 LED);

LED 宏定义从GPIO_Pin_8开始

蓝桥杯大赛-嵌入式-基本模块快速总结

LED灯亮灭控制

蓝桥杯大赛-嵌入式-基本模块快速总结

LED灯翻转(用于闪烁)

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

【模块三】Timer

参考库文件路径:TIM/TimeBase  main.c 、**it.c

void TIM4_Init(void);

void TIM4_IRQHandler(void)

蓝桥杯大赛-嵌入式-基本模块快速总结

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

【模块四】KEY

void KEY_Init(void);

void KEY_Read(void);

void KEY_Process(void);

void Status_Update(void);

 

Key 驱动按键模式为输入浮空

蓝桥杯大赛-嵌入式-基本模块快速总结

宏定义

蓝桥杯大赛-嵌入式-基本模块快速总结

长、短按键检测

蓝桥杯大赛-嵌入式-基本模块快速总结

根据按键情况更新状态处理完成后,清除以下变量

蓝桥杯大赛-嵌入式-基本模块快速总结

【模块五】I2C

EEPROM等驱动函数一定要初始化、一定要初始化、一定要初始化

void i2c_init(void);

等待应答函数交换两行代码

蓝桥杯大赛-嵌入式-基本模块快速总结

添加的读写函数

void Write_AT24c02(u8 add, u8 data);

u8 Read_AT24c02(u8 add);

蓝桥杯大赛-嵌入式-基本模块快速总结

 

【模块六】RTC

参考库文件路径:

RTC/ Calendar  main.c 、**it.c  

RTC_IRQHandler()、Time_Display()、Time_Adjust()、NVIC_Configuration()

RTC/ LSI_Calib  main.c

       RTC_Configuration()

 

包含以下函数

void RTC_IRQHandler(void)

void Time_Adjust(uint32_t Tmp_HH, uint32_t Tmp_MM, uint32_t Tmp_SS)

void RTC_Configuration(void)

void NVIC_Configuration(void)

 

RTC初始化配置函数的注释

蓝桥杯大赛-嵌入式-基本模块快速总结

注释BKP_RTCOutputConfig(BKP_RTCOutputSource_Second);

防止下载程序后屏幕左3/4灰屏

 

 

 

 

 

 

 

 

解决无法显示00:00:00的代码

蓝桥杯大赛-嵌入式-基本模块快速总结

 

修改时间调整函数

蓝桥杯大赛-嵌入式-基本模块快速总结

RTC中断

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

 

 

 

 

 

 

 

 

【模块七】UART

参考库文件路径:

USART/Interrupt     main.c 、***it.c

     RCC_Configuration();  NVIC_Configuration();  GPIO_Configuration();  USART2_IRQHandler();

USART/Printf    main.c

PUTCHAR_PROTOTYPE

 

包含以下函数

void USART2_Init(void)

void USART2_IRQHandler(void)

int fputc(int ch, FILE *f)

 

串口初始化函数

蓝桥杯大赛-嵌入式-基本模块快速总结

 

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

 

 

 

改写fputc 函数,实现printf格式化输出函数

蓝桥杯大赛-嵌入式-基本模块快速总结

 

串口中断函数

蓝桥杯大赛-嵌入式-基本模块快速总结

蓝桥杯大赛-嵌入式-基本模块快速总结

 

 

 

 

【模块八】ADC

参考库文件路径 :ADC/ADC1_DMA  main.c

 

ADC_Channel8_Init()

蓝桥杯大赛-嵌入式-基本模块快速总结

100ms采集一次电压

蓝桥杯大赛-嵌入式-基本模块快速总结

算术平均滤波法处理

蓝桥杯大赛-嵌入式-基本模块快速总结

其他简便的滤波方法:限幅滤波法中位值滤波法、滑动平均滤波法、中位值平均滤波法、一阶滞后滤波法等

【模块九】PWM_Output

参考库文件路径 :

TIM/OCToggle/  main.c   ***it.c

         RCC_Configuration();   NVIC_Configuration();   GPIO_Configuration();

void TIM3_IRQHandler(void)

 

包含函数

void TIM3_PWM_Init(void);

void  TIM3_PWM_CH1(u32 freq, float duty);

 

PWM 输出注意

TIM2 与TIM3输出模式类似,修改数字后缀即可

OC1   翻转模式

蓝桥杯大赛-嵌入式-基本模块快速总结

修改TIM3中断函数  实现频率、占空比可调

蓝桥杯大赛-嵌入式-基本模块快速总结

蓝桥杯大赛-嵌入式-基本模块快速总结

 

【模块十】PWM_Capture

参考库文件路径 :

TIM/ InputCapture/  main.c   ***it.c

         RCC_Configuration();   NVIC_Configuration();   GPIO_Configuration();

void TIM3_IRQHandler(void)

 

包含函数

void TIM3_Caputer_Init(void)

void TIM3_IRQHandler(void)

蓝桥杯大赛-嵌入式-基本模块快速总结

蓝桥杯大赛-嵌入式-基本模块快速总结

 

TIM_OC1polarityconfig(TIM3, TIM_ICPolarity_Rising)

 

TIM3_CH1_Freq = (uint32_t) SystemCoreClock / TIM3_CH1_ReadValue2;

TIM3_CH1_Duty = TIM3_CH1_ReadValue1 * 100 / TIM3_CH1_ReadValue2;