COM_22
- 外设管脚选定
- PD2:LED锁存器输出控制 设为GPIO_OutPut
- 按键:均设置 看产品手册7.7,同时设为GPIO——IntPut
- PWM产生:多用PA6 PA7 此处用PA1(TIM2_CH2),设为PWM Generation CH2
- 串口(已固定):PA9_TX PA10_RX
- 外设初始化
- PWM:
- 选定通道 设为PWM Generation CH2
- 设定主时钟分频:79
- 根据频率定周期:2khz——0.5ms——500us——499
- Auto preload自动预装载按需启用 本题不影响
- 设置原有占空比:Pulse 5%*500=25
- 之后更改的占空比可在程序内设定中断,操作寄存器改变TIM2->ARR变周期,TIM2->CCR2变占空比
- 串口:
1)优先使能串口中断NVIC
2)Mode设为异步收发Asynchronous
3)据题设定波特率 9600,其余默认即可
- 生成代码
- 选版本v5
- 选copy only necessary 第二项
- 选生成.c.h
- 文件路径不包含中文
- 生成代码后,记得添加lcd.c
- 设定仿真器:DAP + reset and run
- 优先细节
1.先包含一下头文件:
#include "stdio.h"
#include "string.h"
#include <stdint.h>
2.初始化外设Init();
3.u8等定义在lcd.h中,需设变量可用#include "lcd.h"
4.在附属.c文件创建的函数一定要在头文件中声明,如:void Key_Read(void);
5.++操作有最大值限制,两方法:1.取余数量最大值 2.if判断清为初值
6.浮点数操作,乘以10倍以上变为整数操作,最后显示再转换为浮点数
- 程序
- LCD_Process():
- 在main.c直接定义,while(1)使用,注意前面初始化界面颜色,仅保留三行程序。
2)防止数据覆盖问题,多敲几个空格在后
-
- LCD数据显示知识点:
- 按键
- key.c:三行按键法
-
- Key_Process():
- 先设u32 keyTick=0;用于后续计时
- 防抖措施:引入系统计时器uwTick(刚开始为0),按键按下20ms(10)之后方可进行下一步
- Key_Read();按键状态读取
- 单片机操作,用并列if即可
3)