一、cubemx初始化
二、需掌握的函数
1.ADC_Process()——while,注意优先确定是否初始化
u16 adc_val;
void ADC_Process()
{
HAL_ADC_Start(&hadc2);
adc_val = HAL_ADC_GetValue(&hadc2);
volt_r37 = adc_val / 4096.0f*3.3f;
}
2.pwm手动更改占空比和频率
3.key.c key.h 按键消抖+读取
u32 KeyTick = 0;
void KeyRead_Process()
{
if( uwTick - KeyTick <10) return;
KeyTick = uwTick;
Key_Read();
4.EEPROM
5.led.c led.h led点亮 led熄灭 led闪烁定时 led 0x01???位置递推?
u8 led_ctrl = 0;
void Led_Process()
{
if(mode_flag == 0)
{
led_ctrl |= 0x01;
}
else
{
led_ctrl &= ~0x01;
}
LED_Control(led_ctrl);
}
6.串口: 函数头 初始化串口 开启串口中断 重定向fputc 串口接收函数 串口重定向 根据要求:串口接收判断函数 串口数据处理函数 串口回调函数,最后重新开启串口
7.系统计时 SysTick
8.RTC实时时钟
三、工程初始化
1.加上lcd.c,#include . h
2.MicroLIB + DAP Reset and Run
3.若有EEPROM add iic.c
4.每写一个函数,考虑是否需while
5.参数设置
u32 keyTick;
u16 adc_val;
float volt_r37;
u8 per_pa6 = 0;
u8 per_pa7 = 0;
u8 mode_flag = 0;
5.第一步 先搭界面框架
sprintf((char*)display_buf," PA6:%3d%%",per_pa6); 打印百分号需两个%%
LCD_DisplayStringLine(Line2, (uint8_t *)display_buf);