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

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置

打开cubemx。

前面的配置与前文一样,这里主要配置基本定时器的定时功能。

1.在Timer中点击TIM6,勾选activated。配置Parameter Settings中的预分频器(PSC)和计数器(auto-reload Register)

补充:

定时器工作频率=内部总线频率/PSC+1

定时频率=定时器工作频率/Period+1  =内部总线频率/((PSC+1)*(Period+1 ))

示例:总线频率80MHz,预分频80-1,重装载1000-1

定时频率= 80M/80*1000=1khz 周期为1ms

2.配置PSC为80-1,计数器为1000-1。

3.将自动重装载(auto-reload )设置为使能(Enable)。

4.点击NVIC Settings,勾选中断使能。

点击GENERATE CODE.  

配置keli

将main.c中的tim.h添加到my_main.h文件中。

1.使能TIM6中断

HAL_TIM_Base_Start_IT(&htim6)

用于启动定时器基本功能并且开启定时器中断的函数。其主要目的是让指定的定时器开始按照预先配置好的参数(比如计数模式、预分频值、自动重装载值等)进行计数工作,并且当定时器计数达到相应条件(例如溢出等情况)时,会触发对应的定时器中断,进而可以在中断服务函数中执行相应的处理代码。

2.编写中断回调函数

点击stm32g4××_hal_tim.h,在大概2529行的位置找到中断回调函数进行复制。

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);

粘贴到my_main.c,用于配置定时器中断。

示例:利用按键函数测试定时中断是否有效。

点开cubemx,在上面配置的基础上,点击System Core中的NVIC,将Time Base优先级设置为4,TIM6 global interrupt优先级设置为5。点击GENERATE CODE.  

my_main.c

#include "my_main.h"
uint8_t led_sta=0x10;
char text[30];
void LED_Disp(uint8_t dsLED)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);//所有LED熄灭(l小写)HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);//左移8位:控制C8-15引脚,值为1的点亮HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//开锁存器HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//关锁存器
}
void setup()
{HAL_TIM_Base_Start_IT(&htim6);LED_Disp(0x00);//关掉所有LEDLCD_Init();//LCD初始化LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);
}void loop()
{/*     LCD演示     */sprintf(text,"    number:%x  ",led_sta);LCD_DisplayStringLine(Line8,(uint8_t *)text);//局部刷新LCD_SetBackColor(Yellow);sprintf(text,"    T:%d                ",30);LCD_DisplayStringLine(Line5,(uint8_t *)text);//局部刷新LCD_SetBackColor(Black);sprintf(text,"    X:A01  ");LCD_DisplayStringLine(Line6,(uint8_t *)text);//局部刷新
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{/*     按键操作演示     */if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET){led_sta=(led_sta&0xfe)|0x01;led_sta=(led_sta&0xfd)|0x00;LED_Disp(led_sta);			}}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET){led_sta=(led_sta&0xfd)|0x02;led_sta=(led_sta&0xfe)|0x00;LED_Disp(led_sta);	//180°翻转屏幕LCD_Clear(Black);REG_932X_Init1();}}
}

相关文章:

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样&#xff0c;这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6&#xff0c;勾选activated。配置Parameter Settings中的预分频器&#xff08;PSC&#xff09;和计数器&#xff08;auto-reload Register&#xff09; 补…...

【Java】类似王者荣耀游戏

r77683962/WangZheYouDianRongYao 运行效果图&#xff1a; 类似王者荣耀游戏运行效果图_哔哩哔哩_bilibili...

C++<基本>:union是没有构造函数和析构函数的

今天发现当我在union中包含了多个结构体时&#xff0c;结构体有默认构造函数时&#xff0c;编译报错。 问题点&#xff1a; union不支持构造函数和析构函数union中的元素本身也是不支持构造函数和析构函数的。包含union的结构体也不支持构造函数和析构函数。 出错代码如下&a…...

SQL中IN和NOT操作符的用法

1. IN操作符&#xff08;布尔逻辑&#xff09; 在SQL中&#xff0c;IN 是一个用于检查某个字段值是否包含在给定的多个可能值中的布尔操作符。它经常与条件表达式一起使用&#xff0c;通常出现在WHERE子句中。 用法&#xff1a; IN操作符用来确定某个字段的值是否存在于给定…...

C++平常学习用的

4.1 友元函数 4.2 友元类 5.2 类模板 7.2 虚函数dynamic_cast运算 7.2 纯虚函数和抽象类...

JAVA |日常开发中Servlet详解

JAVA &#xff5c;日常开发中Servlet详解 前言一、Servlet 概述1.1 定义1.2 历史背景 二、Servlet 的生命周期2.1 加载和实例化2.2 初始化&#xff08;init 方法&#xff09;2.3 服务&#xff08;service 方法&#xff09;2.4 销毁&#xff08;destroy 方法&#xff09; 三、Se…...

QT实战--QTreeWidget实现两种行颜色+QListWidget样式

本文主要介绍了QTreeWidget实现两种行颜色、点击打开父节点以及设置父子节点之间距离,同时附带介绍了QListWidget样式 树效果图: 列表效果图: 1.树样式的实现 1)使用代码: m_pLeftTreeWidget = new QTreeWidget(this);m_pLeftTreeWidget->setObjectName("suolue_t…...

RPA在IT运维中的实践:自动化监控与维护

一、引言 1. IT运维面临的挑战与RPA的机遇 在IT运维领域&#xff0c;日常的监控、维护和故障响应等工作占据了大量的时间和资源。随着技术的发展&#xff0c;RPA技术提供了自动化这些重复性任务的可能性&#xff0c;从而释放IT团队的潜力&#xff0c;让他们能够专注于更复杂和…...

C# 设置方法执行超时,则执行下一个方法

最近在开发过程中遇到了一个问题&#xff0c;在进行通讯连接时&#xff0c;如果没有连接的话会延时几十秒&#xff0c;而且还设置不了连接超时时间&#xff0c;于是我就想着有没有一种可以判断这个方法的执行时间超过多少秒&#xff0c;就跳出执行其他方法&#xff0c;经过大量…...

【iOS】UIImagePickerController

【iOS】UIImagePickerController 前言 笔者简单学习了iOS开发如何调用本地的一个相册的内容&#xff0c;下面简单介绍一下相关内容。 介绍 UIImagePickerController是iOS平台上的一个类&#xff0c;用于在应用程序中访问设备的照片库、相机和视频录制功能。它提供了一个用户…...

现代企业营销模式创新:链动 2+1 模式 AI 智能名片商城小程序的应用与价值

摘要&#xff1a;本文旨在探讨现代企业面临的客户环境变化以及相应的营销模式变革需求&#xff0c;重点分析链动 21 模式 AI 智能名片商城小程序在满足现代企业营销沟通即时性、精准性、社会性和方便性要求方面的作用&#xff0c;并阐述其对企业在未来市场竞争中取得胜利的重要…...

springboot+Loki+Loki4j+Grafana搭建轻量级日志系统

文章目录 前言一、日志组件介绍 1.1 Loki组件1.2 Loki4j组件1.3 Grafana 二、组件下载安装运行 Loki下载安装运行Grafana下载安装运行 三、创建springboot项目总结 前言 日志在任何一个web应用中都是不可忽视的存在&#xff0c;它已经成为大部分系统的标准组成部分。搭建日志…...

服务器守护进程化

目录 一、守护进程的定义与特点 1、定义 2、特点 二、守护进程的原理 三、守护进程与会话&#xff08;Session&#xff09;的关系 四、C实现守护进程 守护进程&#xff08;Daemon Process&#xff09;是一个在后台运行、通常不与用户直接交互的进程。守护进程是操作系统中…...

灵途科技亮相2024世界传感器大会 分享光纤光源技术突破

12月1日至2日&#xff0c;2024世界传感器大会&#xff08;WSS&#xff09;在郑州国际会展中心隆重举办&#xff0c;泛自动驾驶领域光电感知专家灵途科技受邀参加“光纤传感器与激光雷达”分论坛&#xff0c;并在大会上带来《激光雷达用一体化光纤光源》专题演讲&#xff0c;同与…...

day35—蓝桥杯2024年第16届校赛模拟第二期-T4(最小花费)

【问题描述】 小蓝有一个整数&#xff0c;初始值为 1 &#xff0c;他可以花费一些代价对这个整数进行变换。 小蓝可以花费 1 的代价将整数增加 1 。 小蓝可以花费 3 的代价将整数增加一个值&#xff0c;这个值是整数的数位中最大的那个&#xff08;1 到 9&#xff09;。 小蓝可…...

【CSS in Depth 2 精译_068】11.2 颜色的定义(下):CSS 中的各种颜色表示法简介

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 ✔️ 11.2.2.…...

游戏引擎学习第38天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾上次的内容。 我们之前讨论了将精灵放在屏幕上&#xff0c;但颜色错误的问题。问题最终查明是因为使用了一个调整工具&#xff0c;导致文件的字节顺序发生了变化。重新运行“image magic”工具对一些大图像进行重新处理后&am…...

P1223 排队接水(贪心)

题目描述 有 &#x1d45b;个人在一个水龙头前排队接水&#xff0c;假如每个人接水的时间为 &#x1d447;&#x1d456;&#xff0c;请编程找出这 &#x1d45b; 个人排队的一种顺序&#xff0c;使得 &#x1d45b;个人的平均等待时间最小。 输入格式 第一行为一个整数 &am…...

关于springBoot+vue项目中配置SSL证书问题

前端可以通过https进行访问 1.前端在访问后端接口时&#xff0c;使用https进行访问&#xff0c;在request.js配置文件中&#xff0c;这个文件是配置axios的基本请求的&#xff0c;在基础请求地址中改为https方式 2.需要在Linux中的nginx中配置ssl证书&#xff0c;具体请参考&…...

GUI的最终选择:Tkinter

Tkinter是Python默认的GUI库&#xff0c;因此使用时直接导入即可&#xff1a;import tkinter 17.1 Tkinter之初体验 代码分析&#xff1a; tkinter.mainloop()通常是程序的最后一行代码&#xff0c;执行后程序进入主事件循环。 17.2 进阶版本 将代码封装成类&#xff1a; 运…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...