STM32基本定时功能
1、定时器就是计数器。
2、怎么计数?
3、我们需要有一恒定频率的方波信号,再加上一个寄存器。
4、比如每来一个上升沿信号,寄存器值加1,就可以完成计数。
5、假设方波频率是100Hz,也就是1秒100个脉冲。那寄存器值到达100时,我们就知道时间过去了1秒钟。
好,好,好,非常好。
1、基本定时器
1、对于STM32F103来说,使用外部晶振,基本定时器的最高频率可以达到72MHz。也就是1秒钟72*1 000 000次。
2、计数器是一个16bit的数据。最大为65536。65536 ÷ 72 000 000 = 0.0009秒。即最多只能定时器0.0009秒,显示不太合适。所以:
1.1、预分频器
1、预分频器就诞生了。它的作用是可以将定时器的频率进行分频。
2、比如:预分频器(Prescaler)设置为1,则是二分频,36MHz。 Prescaler设置为2,则是三分频,24MHz。
3、预分频器也是一个16bit的数据,最大设置为65535分频。
1.2、自动重装载值
1、其作用是当计数器计到与自己相同值时,便将计数器的值重置为0。
2、如果想定时m个脉冲 ,就需要设置自动重装载值为m-1(因为计数是从0开始的)。
2、普通计数使用
2.1、相关函数介绍
一、关于计数器
①:获取计数器的值
__HAL_TIM_GET_COUNTER(&htim2);
②:设置计数器的值
__HAL_TIM_SET_COUNTER(&htim2);
二、关于自动重装载值
①:获取自动重装载值
__HAL_TIM_GET_AUTORELOAD();
①:设置自动重装载值
__HAL_TIM_SET_AUTORELOAD();
三、关于预分频器
①:设置预分频器值
__HAL_TIM_SET_PRESCALER();
四、开启定时器
HAL_TIM_Base_Start();
2.2、配置
1、这里配置定时器2,这里选择内部时钟,预分频器设置为7200-1,即7200分频,分频后频率为10000Hz,就是一秒计数10000次。
2、自动重装载值设置为10000-1。即每计时1秒,计数器值就会达到10000-1,然后清0。
3、cubeide配置如下:

2.3、代码
HAL_TIM_Base_Start(&htim2);
while (1)
{/* USER CODE END WHILE *//* USER CODE BEGIN 3 */counter = __HAL_TIM_GET_COUNTER(&htim2);sprintf(message,"counter %d\r\n",counter);HAL_UART_Transmit_IT(&huart1, (uint8_t *)message, strlen(message));HAL_Delay(99);
}
2.4、效果

每隔100ms,计数器加1000。
3、定时器更新中断使用
1、实现定时器计数,每次到达自动重装之后触发中断,完成一些任务,然后继续计数。
3.1、配置
2、接着上面的配置增加如下配置;

3.2、代码
//开启定时器中断
HAL_TIM_Base_Start_IT(&htim2);
//重写定时器中断函数`HAL_TIM_PeriodElapsedCallback`
char data[] = "^_^ ^_^ ^_^ ^_^";
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim == &htim2){HAL_UART_Transmit_DMA(&huart1, (uint8_t *)data, strlen(data));//串口发送数据HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);//led翻转}
}
3.3、效果

4、框图
1、万变不离其宗,框图如下

相关文章:
STM32基本定时功能
1、定时器就是计数器。 2、怎么计数? 3、我们需要有一恒定频率的方波信号,再加上一个寄存器。 4、比如每来一个上升沿信号,寄存器值加1,就可以完成计数。 5、假设方波频率是100Hz,也就是1秒100个脉冲。…...
Linux学习:权限
目录 1. shell命令的工作原理与存在意义1.1 shell命令解释器存在的意义1.2 shell解释器的工作原理 2. Linux操作系统:用户2.1 什么是用户2.2 用户的切换操作2.3 用户权限划分的意义 3. Linux中权限的种类和意义3.1 什么是权限3.2 sudo指令与短暂提权 4. 文件类型与文…...
汉诺塔问题代码写法的详细解析
汉诺塔游戏规则: 规则: 汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着…...
Python爬虫入门
什么是爬虫 爬虫就是程序,一个能获取互联网上的资源(文字、图片、音视频)数据的程序。 不用爬⾍, 打开浏览器, 输⼊百度的⽹址,就能在浏览器上看到百度的内容了。那换成爬⾍呢? 道理是⼀样的。只不过,是⽤…...
【数据结构学习笔记】选择排序
【数据结构学习笔记】选择排序 参考电子书:排序算法精讲 算法原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元…...
小资金适合做伦敦金的投资吗?
在回答这个问题之前,我们首先需要了解伦敦金是什么。伦敦金,也称为伦敦金市场交易的黄金,是一种国际性的金融交易产品,其价格受全球政治、经济、货币政策、供求关系等多种因素影响,波动性较大。因此,投资伦…...
自动化运维工具 ---------------Ansible
一、Ansible 发展史及功能 作者:Michael DeHaan( Cobbler pxe kikstar 与 Func 作者)ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具,使用它可以在相距数光年的距离,远程实时控制前线的舰队战斗2…...
富格林:有效做单安全盈利方法
富格林悉知,在伦敦金的投资中,是否安全盈利很大一部分因素取决于是否有效做单,投资者在进入市场之后,需要学习了解伦敦金相关规则,学习一定的做单的技巧,这样有利于我们后续做单顺畅盈利。以下总结几点安全…...
二分查找的理解及应用场景。
一、是什么 在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法 想要应用二分查找法,则这一堆数应有如下特性: 存储在数组中有序排序 搜索过程从数组的中间元素开始&…...
共创时代,品牌如何做好UGC营销?
在当下的互联网时代,众多品牌已经逐渐意识到“产品为重”的影响方式已经很难提升转化率,内容才是吸引用户的必胜法宝,然而当代人被海量信息裹挟,人们的注意力成为稀缺资源,在这个环境下,UGC成为品牌的营销方…...
华为三层交换机:ACL的基本实验
实验要求: PC1不允许访问PC3,PC3可以访问PC1 分析问题: PC1不允许访问PC3,问题中含有“目标地址”则我们需要设置目标地址,这样基本ACL是不行的,必须使用高级ACL [sw1]acl ? INTEGER<2000-2999>…...
基于springboot+vue的旅游管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
4. git 添加版本标签
要给某一分支的某一提交版本添加标签(tag),你首先需要确定该提交版本在分支上的具体哈希值(commit hash)。 一旦你有了这个哈希值,你就可以像之前描述的那样使用 git tag 命令来创建标签。 以下是如何操作的…...
2024 PhpStorm激活,分享几个PhpStorm激活的方案
文章目录 PhpStorm 公司简介我这边使用PhpStorm的理由PhpStorm 2023.3 最新变化AI Assistant 预览阶段结束 正式版基于 LLM 的代码补全测试代码生成编辑器内代码生成控制台中基于 AI 的错误解释 Pest 更新PHP 8.3 支持#[\Override] 特性新的 json_validate() 函数类型化类常量弃…...
2419. prufer序列(prufer编码,模板题)
活动 - AcWing 本题需要你实现prufer序列与无根树之间的相互转化。 假设本题涉及的无根树共有 n 个节点,编号 1∼n。 为了更加简单明了的描述无根树的结构,我们不妨在输入和输出时将该无根树描述为一个以 n 号节点为根的有根树。 这样就可以设这棵无…...
鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Text)
显示一段文本的组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含Span和ImageSpan子组件。 接口 Text(content?: string | Resource, value?: TextOptions) 从API versi…...
开源大数据集群部署(十五)Zookeeper集群部署
作者:櫰木 1、集群规划 主机版本角色系统用户hd1.dtstack.com3.7.1followerzookeeperhd2.dtstack.com3.7.1leaderzookeeperhd3.dtstack.com3.7.1followerzookeeper 2、zookeeper kerberos主体创建 在生产中zk服务端和客户端票据可以设置成不通名称或相同名称&am…...
服务器镜像是什么
镜像即镜像服务器。镜像服务器与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主服务器的负载量。 可以使用,但不是原版的。在网上内容完全相同而且同步更新的两个或多个服务器,除主服务器外,其余的都被称…...
JWT原理
JWT 介绍 JWT(JSON Web Token)是一个开放标准(RFC 7519),它定义了一种简洁的、自包含的方法用于通信双方之间以 JSON 对象的形式安全地传输信息。这种信息可以被验证和信任,因为它是数字签名的。JWT通常用于…...
操作系统:一款纯正的“管理”软件
目录 前言: 1.操作系统的概念 2.操作系统的结构示意图: 3.什么是接口? 4.什么是驱动程序? 4.什么是系统调用(system call)? 5.操作系统和操作系统内核的区别 6.设计OS的核心目的 前言&…...
风廓线雷达:大气垂直探测的 “高空哨兵” 与数据体系解析/一文秒懂
一、风廓线雷达:精准捕捉高空风场的遥感利器 风廓线雷达是气象探测领域中用于 连续、实时、遥感探测大气垂直风场结构 的核心装备,被誉为大气监测的 “高空哨兵” 与 “捕风神器” 。它依托大气湍流散射理论与多普勒雷达技术,无需携带探空仪…...
谷歌开源Gemma 4:256K原生多模态,免费商用
谷歌刚刚发布了新一代开源大模型Gemma 4,直接把Gemini 3的核心技术下放了。2026年4月2日,谷歌如约献上复活节惊喜:Gemma 4 正式开源。从手机到服务器全覆盖四种规格,首次加入MoE架构,原生支持文本图像音频三模态&#…...
Charles证书过期别慌!Win10/Win11系统下彻底清除旧证书的保姆级教程
Charles证书过期别慌!Win10/Win11系统下彻底清除旧证书的保姆级教程 当你发现Charles突然无法正常抓取HTTPS流量,大概率是根证书过期了。作为Windows平台下最常用的抓包工具之一,Charles的证书管理直接影响着开发调试效率。但系统证书存储机制…...
别再纠结了!手把手教你用FreeSWITCH 1.10 + Verto模块搭建WebRTC智能外呼系统(含完整配置文件)
WebRTC智能外呼实战:基于FreeSWITCH与Verto的高效解决方案 在数字化转型浪潮中,企业通信系统正经历从传统电话向互联网融合的深刻变革。我曾为多家金融机构和电商平台设计过智能外呼系统,发现一个共性痛点:如何在不依赖客户端安装…...
OpenClaw本地知识库:Qwen3.5-9B-AWQ-4bit自动索引图片资料
OpenClaw本地知识库:Qwen3.5-9B-AWQ-4bit自动索引图片资料 1. 为什么需要自动化图片管理 作为一个长期囤积各类截图、设计稿和参考图的用户,我的"图片黑洞"问题越来越严重——3TB的硬盘里散落着上万张未分类的图片。传统方案要么依赖手动打标…...
在 Android 上跑大模型,我踩过的那些推理加速坑
有人问过我:在 Android 上跑大模型,和在服务器上跑有什么本质区别? 我想了一下,说:服务器上你在意的是吞吐,手机上你在意的是不要把电池榨干、不要让用户等三秒、不要因为内存不够直接崩。本质区别不是算法…...
告别AI代码乱炖:用GitHub Spec Kit v0.0.79,像资深架构师一样拆解复杂功能
告别AI代码乱炖:用GitHub Spec Kit v0.0.79,像资深架构师一样拆解复杂功能 在当今快节奏的开发环境中,面对一个需要多模块协作的复杂功能时,许多开发者常常陷入两难:要么盲目依赖AI生成代码导致质量失控,要…...
SQL数据库如何删除千万级大表数据_使用TRUNCATE与Drop策略
TRUNCATE 比 DELETE 快因不写行级日志、直接释放数据页并重置高水位线,属 DDL 操作,不可回滚、不支持 WHERE;DELETE 逐行加锁写日志,大表易锁表卡死;DROP 最快但不可逆,丢失结构与权限。TRUNCATE 为什么比 …...
Win11Debloat极速优化:三步让老旧电脑性能倍增的终极指南
Win11Debloat极速优化:三步让老旧电脑性能倍增的终极指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and…...
HybridCLR的底层原理
HybridCLR(原名huatuo)是一个为Unity IL2CPP后端设计的原生C#热更新解决方案。它通过扩展Unity的IL2CPP运行时,将其从纯AOT(提前编译)模式改造为 “AOT 解释器”混合运行时,从而原生支持动态加载.NET程序集…...
