定时器+中断 闪烁led

文章介绍了在Ubuntu18.04环境下,基于STM32F427IIH6芯片进行定时器和中断的配置,包括定时器的分频、重载值设置,以及中断处理函数中实现GPIO引脚翻转的功能。通过对比轮询和中断,强调中断在处理事件上的优势。文章还详细讲述了如何配置定时器、中断,以及RCC和SYS,最后展示了实验效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

    • 运行环境:
    • 1.1 定时器和中断
      • 1)定时器
      • 2)轮询和中断
    • 2.1配置
      • 1)定时器配置
      • 2)中断配置
      • 3)RCC和SYS
    • 3.1代码分析
    • 3.2添加代码
      • 1)中断处理函数IRQ中添加代码
      • 2)launch设置
    • 4.1定时器启动和定时器中断启动函数
    • 5.1实验效果

运行环境:

ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源

1.1 定时器和中断

1)定时器

类似闹钟,设定好对应时间,会在设定的时刻响起铃声。

分频:降低频率
计数:用来计数
重载:清零

当定时器中的计数值达到重载值时,计数值就会被清零,触发中断

2)轮询和中断

例如厨房里烧着开水,主人在客厅里看电视。为了防止开水烧干,他有两种方式:

第一种是每隔10分钟就去厨房看一眼

另一种是等水壶烧开了之后开始发出响声再去处理。

前者是轮询的方式,后者是中断的方式。

2.1配置

1)定时器配置

内部时钟稳定、省电,适用于精度要求不高的应用

在这里插入图片描述分频值:18000
计算周期(重载值):10000

A板计算:
180 000 000/180 00 /10000 = 1Hz
(1Hz,每秒触发一次中断)

实际填入17999、9999 (因为从0开始计数)

在这里插入图片描述

TIM1挂载在APB2

在这里插入图片描述在这里插入图片描述

2)中断配置

打开定时器更新中断(满了触发中断)

在这里插入图片描述

3)RCC和SYS

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

为每个外设 生成外设初始化.c/.h文件

在这里插入图片描述

3.1代码分析

在这里插入图片描述

初始化了定时器,但是还没启动,需要启动定时器
进入 初始化函数MX_TIM1_Init(),启动定时器

在这里插入图片描述

中断触发位置:
中断触发后就会执行这个函数 HAL_TIM_IRQHandler(&htim1),这个函数将定时器初始化,重新开始计数。

在这里插入图片描述

3.2添加代码

1)中断处理函数IRQ中添加代码

// 每秒翻转一次
HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_11);
HAL_GPIO_TogglePin(GPIOF  , GPIO_PIN_14);

在这里插入图片描述

make编译,F5烧录调试

2)launch设置

修改成以下内容:可执行文件名是freeRTOS_LED.elf

{ =400x
    "configurations": [
    

        {
            "showDevDebugOutput": "parsed",
            "cwd": "${workspaceRoot}",
            "executable": "./build/TIM1.elf",
            "name": "Debug STM32",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "stm32f427",
            "configFiles": [
                "interface/stlink-v2-1.cfg",
                "target/stm32f4x.cfg"
            ]
        }
    ]
}

4.1定时器启动和定时器中断启动函数

在这里插入图片描述在这里插入图片描述

5.1实验效果

在这里插入图片描述在这里插入图片描述


⭐⭐⭐ 嘟嘟崽 ⭐⭐⭐
⭐⭐⭐ 祝你成功 ⭐⭐⭐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圆嘟嘟2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值