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开发板------全集成开发板,外设齐全

相关推荐
ITKEY_22 分钟前
Arduino cli 写hello world
单片机
HQB20261 小时前
EG1195S|屹晶微电子 120V 外置 MOS 异步降压 DC‑DC 控制器
嵌入式硬件·硬件工程
Zw-awa1 小时前
让电机走到指定位置:编码器位置环 PID
stm32
俊基科技2 小时前
A-59P 多功能语音处理模组:一芯集成 AI 降噪、消回音与波束成形,重塑全双工通话体验
嵌入式硬件·硬件开发·ai降噪·语音模块·回音消除
POMAGTOR2 小时前
硬件接口选型|磁吸式连接器原理与应用,不止磁吸充电
网络·嵌入式硬件·电脑
澄纸气2 小时前
KEIL的调试模式
stm32
皓月盈江2 小时前
Linux Debian下STM32CubeProgrammer串口连接失败解决方案
linux·stm32·debian·串口下载·stm32f103c8t6·usb转ttl·stm32cubepro
深圳老胡2 小时前
C语言实现C++面向对象程序设计示例
笔记·stm32·单片机·代码规范
2501_922639583 小时前
率能半导体 SS6226双通道直流电机驱动芯片:7.2V/1.4A双路,覆盖玩具、小家电、直流有刷电机三大应用场景
单片机·嵌入式硬件·硬件工程
LCG米3 小时前
STM32时钟树配置实测:HSE起振失败回退HSI、PLL分频倍频计算与Flash等待周期陷阱
stm32·单片机·嵌入式硬件·嵌入式