本文以STM32F407ZGT6为例
一、配置cubeMX
1、点击图片框选之处
2、这里等待自动下载
3、选择芯片型号
搜索所使用的芯片型号,在右下侧双击芯片
4、开启调试
在“System Core”中点击“SYS”,“Debug”选项中选择“Serial Wire”
5、设置时钟
在RC中的“HSE”设置为“Crystal/Ceramic Resonator”
6、开启定时器TIM3
7、配置PWM的具体参数
预分频系数为 71,自动重装载值为 499,定时器溢出频率,即PWM的周期,就是 72MHz/(71+1)/(499+1) = 2kHz
8、设置时钟树
点击顶部“Clock Configuration”,在“Input frequency”处输入“8”,依次选择“HSE”、“PLLCLK”,并在“HCLK”输入“72”,并点击回车,系统会自动配置其他参数。(若选择其他芯片,HCLK处则填下面提示的最大值)
9、配置工程
①project配置:依次输入工程名字、选择工程路径;
选择IDE为“MDK-ARM”、版本为“V5”
②“Code Generator”配置:
10、打开keil5工程
生成工程文件之后点击“open project”,就会自动打开该工程。
二、设置keil5
1、点击魔术棒,选择编译器版本。
2、点击“debug”,选择“ST-Link Debugger”,点击右面的“Settings”
3、进入stlink设置之后,勾选“Reset and Run”
(上一篇点灯已经说过)
三、编写呼吸灯代码
1、复制以下代码
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3); //使能TIM3的PWM Channel3 输出
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,50); //设置默认的占空比值
while (1) {
// 吸气
while (pwm_value < 500) {
pwm_value++;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, pwm_value); // 修改比较值,修改占空比
HAL_Delay(5);
}
HAL_Delay(1000); // 可选,保持最大亮度一段时间
// 呼气
while (pwm_value > 0) {
pwm_value--;
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, pwm_value); // 修改比较值,修改占空比
HAL_Delay(5);
}
HAL_Delay(1000); // 可选,保持最小亮度一段时间
}
2、编译并下载,无报错程序即烧写成功
3、呼吸灯效果
欢迎点赞加收藏