STM32—控制蜂鸣器(定时器)

目录

[1 、 电路构成及原理图](#1 、 电路构成及原理图)

[2 、编写实现代码](#2 、编写实现代码)

main.c

tim_irq.c

3、代码讲解

4、烧录到开发板调试、验证代码

5、检验效果


此笔记基于朗峰 STM32F103 系列全集成开发板的记录。

1 、 电路构成及原理图

定时器中断是利用定时器的计数功能(向上计数或向下计数)当计数溢出时产生中断。不难理解,使用也很简单但就是很重要。使用的过程是初始化定时器基本计数方式、开启定时器中断、设置中断优先级、使能中断就完成了

2 、编写实现代码

main.c

tim_irq.c

3、代码讲解

正常的初始化定时器 2---TIM2 向上计数模式并通过函数:

HAL_TIM_Base_Start_IT(&TIM2_Handler); 开启 TIM2 的中断。

紧接着进行 TIM2 的底层初始化:

HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim),这个底层初始化

过程会在 HAL_TIM_Base_Init(&TIM2_Handler);中调用。

底层初始化主要是设置中断优先级,这里设置抢占优先级为 2,

子优先级为 2。HAL_NVIC_SetPriority(TIM2_IRQn,2,2);

之 后 写 定 时 器 中 断 函 数 也 是 调 用 HAL 库 定 时 器 中 断 函 数

HAL_TIM_IRQHandler(&TIM2_Handler);

最后在中断回调函数里翻转端口 PC5 电平实现蜂鸣器间歇发声。蜂鸣器引脚连接在 PC5.

4、烧录到开发板调试、验证代码

用朗峰 F1 开发板配的 ST-LINK 下载器,连接到开发板的 SWD 插针上注意引脚对应关系,不要插错了。 然后编译一次(按 ),编译结果显示 0 错误 0 警告就 OK 。之后再按将代码下载到开发板。(可参考之前的笔记)

5、检验效果

连接好开发板电源并按下电源开关,这时就可以听见蜂鸣器有节奏间歇的响起了.

STM32F103RCT6开发板------全集成开发板,外设齐全

相关推荐
btzhy9 小时前
STM32单片机:基本定时器应用:单脉冲模式(STM32L4xx)
stm32·单片机·嵌入式硬件·基本定时器应用:单脉冲模式
文sir.10 小时前
温湿度采集系统(stm32+mqtt+Onenet云平台+esp8266)
stm32·单片机·嵌入式硬件·mqtt·onenet·云平台·esp8266
DIY机器人工房10 小时前
嵌入式面试题:你有没有用过直接基于TCP协议,不借助HTTP、MQTT这类上层协议的项目经历?
stm32·单片机·嵌入式硬件·面试题·diy机器人工房
zhmc12 小时前
Cortex M0单片机指令执行周期
单片机·嵌入式硬件
编程小白菜12312 小时前
STM32L051单片机485Ymode升级后程序不能正常运行问题
stm32·嵌入式硬件
NEU-UUN14 小时前
5.1.STM32-EXTI外部中断——全程手敲板书
stm32·单片机·嵌入式硬件
TangDuoduo000515 小时前
【常见传感器原理及应用】
单片机·嵌入式硬件
q***06471 天前
SocketTool、串口调试助手、MQTT中间件基础
单片机·嵌入式硬件·中间件
洋九八1 天前
电路基础和 PCB 制作
单片机·嵌入式硬件·pcb工艺
qq_401700411 天前
RS485基本原理,电路、防雷、layout及设计要点
stm32·单片机