当前位置: 首页 > news >正文

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

目录

1 、 电路构成及原理图 

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

http://www.lryc.cn/news/325609.html

相关文章:

  • 【React】使用 JSX 为 JavaScript 添加标签
  • Docker构建多平台(x86,arm64)构架镜像
  • python爬虫基础-----运算符(第三天)
  • Itextpdf电子签章
  • 两台电脑简单的通信过程详解(经过两个路由器,不同网段)
  • Java基于微信小程序的助农扶贫系统的研究与实现
  • RocketMq方便测试,提供一个controller的接口,支持拉取消息,查看消息内容
  • win10 下Msys2编译FFmpeg的流程方法
  • 用 Delphi 做 FTP 服务器以及如何配置防火墙
  • 《SQL必知必会第五版》第十四章(组合查询)挑战题
  • elasticsearch+kibana安装部分问题:
  • Python---常用的web框架
  • Jenkins Docker 部署指南
  • 海外媒体宣发:商务视频推广数字化变革全解析-华媒舍
  • 文件服务: 功能介绍
  • php 快速入门(二)
  • java面试题|(1)多线程如何停止一个线程?
  • 使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务
  • Mybatis的核心配置文件
  • 四川易点慧电子商务抖音小店:安全可靠,购物新选择
  • 基于数据沙箱与LLM用例自愈的UI自动化测试平台
  • 面试算法-117-组合总和 III
  • 邮件接口与第三方平台的集成的方式有哪些?
  • qrcode插件-生成二维码
  • 基于JavaSpringmvc+myabtis+html的鲜花商城系统设计和实现
  • [论文笔记] Dual-Channel Span for Aspect Sentiment Triplet Extraction
  • 【C语言】linux内核pci_enable_device函数和_PCI_NOP宏
  • 网络: 套接字
  • Day57-Nginx反向代理与负载均衡初步应用
  • 【PHP】通过PHP开启/暂停Apache、MySQL或其他服务