HAL-Cubemax定时器使用记录


title: HAL-Cubemax定时器使用记录
tags:

  • STM32
  • Hal
  • Cubemax

文章目录

  •   HAL-Cubemax定时器使用记录
        • 分享一种思路
          • 1.创建一个ms(毫秒)级延时中断
          • 2.创建计数的变量
          • 3.在需要延时的函数中对变量阈值进行判断
          • 4.验证实例--完整使用记录代码
    • 问题
      • 往期内容
          • 基础库
          • HAL+ cubemax + VSCODE + GCC

  HAL-Cubemax定时器使用记录


  我们有些程序在执行或者和下位几交互的过程中可能会出现下位机硬性规定需要等待多少秒的情况然而我们的程序又必须得执行下去,这样会造成单片机大量资源出现过度浪费的情况解决这种问题的办法有很多。

分享一种思路
1.创建一个ms(毫秒)级延时中断
2.创建计数的变量
3.在需要延时的函数中对变量阈值进行判断
4.验证实例–完整使用记录代码

Cubemax创建一个ms定时器很简单这里不赘述附上参考链接:

STM32CubeMX学习笔记(5)——基本定时器接口使用

uint32_t time = 0;

extern uint32_t time;

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{
 if(htim->Instance == TIM7)  // 定时器6基地址

 {

​    // 自定义应用程序

​    time++;      // 每1ms进来1次

 }

}


业务逻辑

 while (1)

 {

  /* USER CODE END WHILE */

   

  /* USER CODE BEGIN 3 */

​    if(time == 1000)  // 每1秒LED灯翻转一次

​    {

​      HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);

​      time = 0;

​    }

 }

这样就能做到每秒触发一次少占用资源了

问题

if(time == 1000)

这里我们是让它到达1000ms时 就触发业务函数 如若单业务逻辑比较多时

此时到达1000msif 来不及判断 那么 这个函数永远没有执行 那么 这种情况如何处理 ?

如果是换成if(time >= 1000)

又那么超过了多少个ms呢?

往期内容

基础库

01VScode开发stm32环境搭建

02点亮一个LED

03按键控制LED

HAL+ cubemax + VSCODE + GCC

HAL PWM 配置 占空比 频率

HAL-DMA中断空闲接受不定长数据

HAL-按键-MultiButton使用记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/745165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows 安装 Kubernetes(k8s)

windows 安装 docker 详情见: https://blog.csdn.net/sinat_32502451/article/details/133026301 minikube Minikube 是一种轻量级的Kubernetes 实现,可在本地计算机上创建VM 并部署仅包含一个节点的简单集群。 下载地址:https://github.…

每日一题——Python实现PAT乙级1030 完美数列(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试 再次尝试 代码结构 时间复杂度分析 空间复杂度分析 总结 我要更强 时…

《互联网政务应用安全管理规定》深度解读

《互联网政务应用安全管理规定》的出台,对互联网政务应用的安全提出了一系列具体要求。 2024年5月15日,中央网信办、中央编办、工业和信息化部、公安部等四部门联合公布《互联网政务应用安全管理规定》(以下称《规定》)&#xff…

手机pdf删除怎么办?只需要2招,就可以快速恢复耶

PDF文件,这个我们日常生活中的常客,越来越受到大家的喜爱。但是,有时候我们会因为一时的疏忽或者清理手机内存而不小心删掉了重要的PDF文件,这可真是让人头疼啊!那么,这些pdf删除后,有没有什么好…

一年半测试|17K|商汤科技4轮面经

面经哥只做互联网社招面试经历分享,关注我,每日推送精选面经,面试前,先找面经哥 背景‍‍ 楼主本科,大概一年半工作经验。 之前工作也是测试岗,离职了三个多月再次刷题面试,大概花了一个月准备…

Java露营基地预约小程序预约下单系统源码

轻松开启户外探险之旅 🌟 露营热潮来袭,你准备好了吗? 随着人们对户外生活的热爱日益增加,露营已成为许多人周末和假期的首选活动。但你是否曾因找不到合适的露营基地而烦恼?或是因为繁琐的预约流程而错失心仪的营地…

OElove 婚恋系统 v10.2升级真是及时,你们是不是UI团队换了?不得不说这次UI是真美!当然功能也升级了大大的赞!

怎么说呢,成为OE的老用户已经有五年了,当时买的初衷就是在本地做一个响当当的门户但是因为疫情搁浅了。。。实在是入不敷出!转行的这几年又看好了婚恋这个行业于是打算冲头再来,我记得我当时还是8.5,功能比较强大就是太…

联邦学习——学习笔记2:联邦学习×资源受限下的自适应本地迭代次数

文章目录 一、符号二、应用场景三、与FedAvg算法区别 本笔记参考自b站up主:丸一口 论文参考自Adaptive Federated Learning in Resource Constrained Edge Computing Systems 原视频链接 一、符号 原文的符号解释如下图绿色字体所注 二、应用场景 就是在资源小…

数据结构历年考研真题对应知识点(栈)

目录 3.1栈 3.1.1栈的基本概念 【栈的特点(2017)】 【入栈序列和出栈序列之间的关系(2022)】 【特定条件下的出栈序列分析(2010、2011、2013、2018、2020)】 3.1.2栈的顺序存储结构 【出/入栈操作的模拟(2009)】 3.1栈 3.1.1栈的基本概念 【栈…

视觉与运动控制6

基于驱动器的控制功能 驱动器的系统性能和运算能力有限需要单独的运动控制器。 V/F恒压频比控制 开环控制方法,应用最广泛、最简单,只需要电机数据即可。适用于控制精度和动态响应要求不高的应用。控制原理:保持点击内磁通量恒定&#xff…

Rocketmq在单节点情况下新增从节点

Rocketmq在单节点情况下新增从节点 在docker-compose部署rocketmq单节点的基础上,新增一个从节点 一,修改docker-compose配置文件 原docker-compose文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:server-4.5.2container_name: rm…

CST软件中滤波器中外部耦合偏小怎么办

在电磁仿真领域,CST Studio Suite(CST 工作室套装)软件以其强大的功能和易用性而广受工程师和科研人员的青睐。然而,在使用CST软件进行滤波器设计时,有时会遇到外部耦合偏小的问题,这可能导致滤波器的性能不…

已解决java.security.GeneralSecurityException: 安全性相关的通用异常的正确解决方法,亲测有效!!!

已解决java.security.GeneralSecurityException: 安全性相关的通用异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 确定具体异常类型 检查输入参数 验证算法支持性 调整安全策略 确保资源可…

[深度学习] 自编码器Autoencoder

自编码器(Autoencoder)是一种无监督学习算法,主要用于数据的降维、特征提取和数据重建。自编码器由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。其基本思想是将输入数据映射…

ROS2从入门到精通2-2:详解机器人3D可视化工具Rviz2与案例分析

目录 0 专栏介绍1 什么是Rviz2?2 Rviz2基本界面3 Rviz2基本数据类型4 数据可视化案例4.1 实例1:显示USB摄像头数据4.2 实例2:显示球体 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有…

python turtle 001画两只小狗

效果图: 代码: pythonturtle001画两只小狗资源-CSDN文库 # 作者V w1933423import turtle # 导入turtle模块def draw_dogs():turtle.setup(800, 800) # 设置画布大小为800x800p turtle.Pen() # 创建一个画笔对象p.pensize(14) # 设置画笔大小为14p.…

【PL理论深化】(7) Ocaml 语言:静态类型语言 | 自动类型推断 | 多态类型和多态函数 | let-多态类型系统

💬 写在前面:OCaml 是一种拥有静态类型系统的语言,本章我们就要探讨静态类型系统。 目录 0x00 静态类型系统 0x01 自动类型推断(automatic type inference) 0x02 多态类型和多态函数 0x03 let-多态类型系统&#…

微信群聊不见了?掌握这4个技巧轻松找回,简直太爽了

微信,作为国内最受欢迎的社交应用之一,其群聊功能极大地方便了人们的工作与生活。然而,随着加入的群聊数量日益增多,如何快速找到并管理这些群聊成为了一个难题。 幸运的是,微信提供了一些实用的技巧,帮助…

Linux 安装ElasticSearch + FSCrawler 扫描本地的文件资源

文章目录 0. 前言1. 安装ElasticSearch1.1 下载安装包1.2 新增用户1.3 解压安装包1.4 更改文件夹用户1.5 修改配置文件1.6 修改系统配置1.7 启动集群 2. 安装FSCrawler2.1 下载安装包2.2 创建配置文件2.3 修改配置文件2.4 启动2.5 验证是否被索引 0. 前言 Elasticsearch 是一个…

Ubuntu-22.04 安装禅道

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…