STM32定时器不按设定超时产生中断

news2024/9/25 23:17:06

1. 引言

某客户设计需要启动定时器在 3ms 后产生中断,其后定时器不再运行,直至下一次软件要求再次启动定时器产生中断,实测代码后发现定时器启动后立即产生了超时中断。

2. 调研

客户通过 STM32CubeMX 配置 TIM7 并生成工程,在主循环中添加定时器启动代码;
在定时器中断处理函数处理 update event 回调时停止定时器,并翻转一个 I/O 脚指示定时器启停,代码如下:
图1.启动定时器
在这里插入图片描述
图2.定时器中断回调
在这里插入图片描述
客户期待的结果是启动定时器时 I/O 拉高并保持 3ms,当 3ms 到达后产生中断拉低I/O,但实测时发现,定时器启动后立即产生了超时中断(高电平持续时间约 2us):

3. 分析

应用代码在初始化定时器时会调用 HAL_TIM_Base_Init( )接口,此接口会调用TIM_Base_SetConfig( ) 配置定时器,并产生更新事件(TIMx->EGR = TIM_EGR_UG)加载寄存器,此事件标志 UIF 会被置位,在调用 HAL_TIM_Base_Start_IT( ) 启动定时器,在此使能定时器中断时,由于 UIF 已经置位,所以会立即触发并进入中断处理函数,中断回调函数会停止定时器计数,并禁止定时器中断;但当从中断处理函数返回继续执行HAL_TIM_Base_Start_IT( )时,此接口会使能定时器开始计数,进而在下一次调用HAL_TIM_Base_Start_IT( )时又会立即产生中断,循环往复,详细时序和具体代码如下:
图4.问题产生时序描述
在这里插入图片描述
图5.定时器启动代码
在这里插入图片描述

4. 处理

修改代码,在启动定时器前强制停止定时器计数、清除中断位、清除 NVIC 挂起的中断后,再启动定时器,详见下图红框内代码;
图6.问题修正代码
在这里插入图片描述
图7.修正 BUG 后的运行结果
在这里插入图片描述

5. 小结

在碰到这类定时器异常问题时,可以利用 I/O 口指示运行状态,结合代码分析找到原因并加以解决。

文档中所用到的工具及版本

IAR 8.50.6
LAT 中的附件
LAT1299 定时器不按设定超时产生中断_v0.2.7z


本文档参考ST官方的《【应用笔记】LAT1299+定时器不按设定超时产生中断(PDF)》文档。
参考下载地址:https://download.csdn.net/download/u014319604/89003463

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外包干了15天,技术退步明显。。。。。。

说一下自己的情况,本科生,19年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法,但这种管理方法存在着许多弊端,比如效率低下、安全性低以及信息传输的不准确等,同时由于智慧农业中会形成众多的个人文档和信息系统数据,通过人工方法对知识科普、土壤信息、水质信息、购物商城…

PrimeTime 工具学习笔记(4)

脚本书写。主要是tcl脚本的基本语法。可以看我的这个专栏: Tcl & STA_在路上-正出发的博客-CSDN博客

CSS样式表 样式优先级 选择器以及选择器的权重优先级

CSS组成 css由选择符和声明组成,声明又分为属性和属性值 属性必须放在花括号里面,属性与属性值必用冒号连接 每条声明用分号结束 当一个属性有多个属性值的时候,属性值与属性值部分先后顺序,用空格隔开 在书写样式过程中、空格、换…

python课后习题一

题目: 1. 2. 解题过程: 1. """计算年数和天数""" minute int(input("请输入分钟数:")) hours minute // 60 days hours // 24 years days // 365 last_days days % 365 print(f"{minut…

uniapp_微信小程序客服

一、调用api 二、代码 <button open-type"contact">客服</button> 三、小程序后台添加客服人员就行

最新版puppeteer 在linux下的安装教程

最新版的 puppeteer 在安装的时候&#xff0c;Chromium不会自动下载&#xff0c;导致安装失败 这个时候需要跳过Chromium的安装&#xff0c;然后手动下载Chromium并安装。 1、先设置npm跳过Chromium下载 export PUPPETEER_SKIP_DOWNLOADtrue 2、安装puppeteer npm i pup…

深度解读UUID:结构、原理以及生成机制

What 是 UUID UUID (Universally Unique IDentifier) 通用唯一识别码 &#xff0c;也称为 GUID (Globally Unique IDentifier) 全球唯一标识符。 UUID是一个长度为128位的标志符&#xff0c;能够在时间和空间上确保其唯一性。UUID最初应用于Apollo网络计算系统&#xff0c;随后…

vue使用element-ui 实现自定义分页

element-ui文档截图&#xff0c;plus大同小异。 可以通过插槽实现自定义的分页。在layout里面进行配置。 全部代码 //page.js export default {name:Cuspage,props:{total:Number,},data(){return {currentPage:1,pageSize:10,}}methods: {setslot (h) {return(<div cla…

Navicat Premium 15 Mac中文激活:数据库开发工具

Navicat Premium 15 for Mac是一款功能强大的数据库管理和开发工具&#xff0c;专为Mac用户打造。它支持多种数据库系统&#xff0c;如MySQL、MariaDB、SQL Server、Oracle、PostgreSQL等&#xff0c;为数据库管理员和开发人员提供了全面的解决方案。 软件下载&#xff1a;Navi…

ElasticSearch - 基本操作

前言 本文记录 ES 的一些基本操作&#xff0c;就是对官方文档的一些整理&#xff0c;按自己的习惯重新排版&#xff0c;凑合着看。官方的更详细&#xff0c;建议看官方的。 下文以 books 为索引名举例。 新增 添加单个文档 (没有索引会自动创建) POST books/_doc {"n…

Web and HTTP

Web and HTTP First, a review… ▪ web page consists of objects ▪ object can be HTML file, JPEG image, Java applet, audio file,… ▪ web page consists of base HTML-file which includes several referenced objects ▪ each object is addressable by a URL, e.g.,…

在Linux环境底下 用C语言执行Python程序

在Linux环境底下 用C语言执行Python程序 文章目录 在Linux环境底下 用C语言执行Python程序1、环境安装&检测2、C语言调用Python语句2.1 直接调用python语句2.2 调用无参python函数2.3 调用有参python函数 1、环境安装&检测 通过C语言调用Python代码&#xff0c;需要先安…

Ubutun部署docker,并使用docker部署springboot项目,关闭软件可继续访问

工具为xftp和xshell。 我这里使用的Ubuntu的版本是20.04的&#xff0c;话不多说&#xff0c;我们来直接上代码。 首先我们最好使用管理员权限进行操作&#xff0c;预防操作时遇到权限问题。 部署docker 登入管理员 不登入管理员也没关系。 su根据提示输入密码&#xff0c;进…

nginx使用与配置文件

nginx服务配置与配置优化 nginx服务脚本配置 mkdir wwwroot cd wwwroot/ mkdir nginx1 touch index.php vim index.php<?php echo $_SERVER["REMOTE_ADDR"]; ​ ​ vim conf/nginx.confserver {listen 80;server_name localhost;root /www/wwwroot/nginx…

【100%成功】从0到1教你开通GPT4.0会员,一年立省1800,拒绝高价代开,免排队无需等待。

我们看下这个网址代开差不多要300&#xff0c;而我用Fomepay每个月才150左右&#xff0c;不需要年费月费&#xff0c;虽然有开卡费用10刀&#xff0c;但是也很划算&#xff0c;你自己算一下&#xff0c;一个月300一年就1千多 点击获取卡&#xff0c;0年费0月费 开卡步骤很简…

在任何 Mac 上恢复永久删除照片的 5 种简单方法

Mac 为业余和专业摄影师提供了很多东西&#xff0c;从令人印象深刻的硬件到广泛的照片管理和编辑应用程序。它还提供了多种恢复丢失照片的方法&#xff0c;我们在本文中介绍了其中的五种方法&#xff0c;以帮助您避免潜在的灾难性情况。 Mac 上删除的照片去了哪里&#xff1f;…

大屏页面 电子数字 制作

字体包下载地址 链接: https://pan.baidu.com/s/1pjslpT5QQi7-oALDM-uX8g 提取码: zxcv 效果展示 使用前使用后 使用方式 1.解压后将文件夹放入public 2.在公用样式中加入 font-face {font-family: mFont;src: url(../../public/DS-Digital/DS-DIGI-1.ttf); } 3. 在项目…

深化涉案企业合规改革:从治标到治本的必由之路

在市场经济的大潮中&#xff0c;企业作为经济发展的主体&#xff0c;其健康运行对整个社会的稳定与繁荣至关重要。然而&#xff0c;随着经济全球化的加速和市场竞争的激烈&#xff0c;一些企业在追求利润最大化的过程中&#xff0c;可能会忽视法律法规&#xff0c;甚至触犯法律…

机器学习知识点复习 下(保研、复试、面试)百面机器学习笔记

机器学习知识点复习下 第八章、采样1.采样的作用 第九章、前向神经网络1.多层感知机与布尔函数2.神经网络中的激活函数3.多层感知机的反向传播算法4.神经网络训练技巧5.深度卷积神经网络6.深度残差网络 第十章、循环神经网络1.循环神经网络和卷积神经网络2.循环神经网络的梯度消…