STM32-HAL库 呼吸灯(创社派-STM32F407ZGT6)

本文以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、呼吸灯效果

欢迎点赞加收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值