首页 > 其他分享 >TIM_Cmd()函数引发的思考

TIM_Cmd()函数引发的思考

时间:2023-12-03 11:12:55浏览次数:35  
标签:定时器 关闭 捕获 Cmd TIM 细心 思考

在使用定时器的输入捕获进行频率测量时发现用TIM_Cmd()函数关闭定时器后,输入捕获中断还是会被触发,这就很奇怪了,输入捕获是定时器的一种模式,关闭定时器不就意味着输入捕获捕获也被关闭了吗?可是实际并非如此,输入捕获中断正常触发,但是捕获值都为0,那就只有一种可能了——TIM_Cmd()只能关闭计数器,并不能关闭中断。于是我马上查看TIM_Cmd()函数的定义
image
发现TIM_Cmd()函数内部实现是配置CR1寄存器的CEN位,查看参考手册发现该位为计数器使能位
image
通过这个问题,我发现自己还是对STM32不是特别熟,很多时候自己觉得懂了,其实也只是知道如何使用,更深入的原理和一些细节自己还是没有掌握或注意到,这就给后续使用埋下了隐患。说到底还是一个细心的问题,编程遇到后面越需要细心,这里的细心有指芯片使用上的细心,也有逻辑上的细心,一个系统运行正常并不意味着没有问题,只能说明发生问题的条件没有出现,程序是人写的就会或多或少存在逻辑上的漏洞,尤其是在存在中断的系统可能会出现竞争,一个程序从某个局部来分析没有问题,但放到整个系统上去分析就可能会出现逻辑漏洞了。所以,我们在写程序时一定要保持严谨的逻辑思维,尽可能注意到细节和漏洞,多思考、多推演。

标签:定时器,关闭,捕获,Cmd,TIM,细心,思考
From: https://www.cnblogs.com/wangfeng-98/p/17872700.html

相关文章

  • setTimeout 函数在前端延迟搜索实现中的作用
    看这段代码:SmartFilterBar.prototype._regularTriggerSearch=function(iDelay){ if(this.getSuppressSelection()){ return; } this._clearDelayedSearch(); this._iDelayedSearchId=setTimeout(function(){ varaPromises=this._getVisibleControlsL......
  • 关于企业级 Web 应用搜索引擎优化(Search Engine Optimization)的一些工作经验分享
    笔者之前的社区文章,分享了自己在日常工作中从事企业级Web应用开发的一些工作体会:企业级Web应用里使用CSS调整应用外观的一些例子谈谈企业级Angular应用的二次开发-基于AngularComponent替换的Extensibility支持案例介绍所谓企业级前端应用,是指为大型企业或组......
  • foxy rviz2 "rviz_common/Time"报错问题
    报错内容Theclassrequiredforthispanel,'rviz_common/Time',couldnotbeloaded.Error:Accordingtotheloadedplugindescriptionstheclassrviz_common/Timewithbaseclasstyperviz_common::Paneldoesnotexist.DeclaredtypesareTeleopPanel......
  • 常用CMD命令
    盘符切换查看目录下的所有文件dir切换目录cdchangedirectorycd/e直接到E盘cd\look直接到look文件夹cd..切换上一级清理屏幕cls(clearscreen)退出终端exit查看电脑的ip(注意这个ip不是你对外访问的ip而是你的局域网ip)可以直接在里面打开应用calc(计算机......
  • java Runtime
    packagenet.elaina.Runtime;importjava.io.IOException;publicclasstest1{publicstaticvoidmain(String[]args)throwsIOException{/*publicstaticRuntimegetRuntime()当前系统的运行环境对象publicvoidexit(......
  • 无涯教程-Python - 时间序列(Time)
    时间序列(TimeSeries)是一系列数据点,其中每个数据点都与时间戳关联,一个简单的示例是在给定的一天中,股票在不同时间点的价格,另一个示例是该地区一年中不同月份的降雨量。在下面的示例中,无涯教程以特定股票代码每天四分之一的股价价格为示例,将这些值捕获为一个csv文件,然后使用pan......
  • 鼠头鸭脖事件背后的思考:食品安全为何屡出纰漏?如何监管才能做到百密不疏?
    一、方案背景近日,震惊全网的“鼠头鸭脖”事件得以落幕,在大家的见证下,官方也做出了公证处理,仅在2023年就有两起高校“鼠头”事件曝出,以至于让大家对高校食堂产生了心理阴影。虽然事后有关部门进行了严肃处理,但食品安全的监管依然是大家十分关注的。除了人工监管以外,AI智能监控的参......
  • android开发aar包或者jar包出现类重复问题Caused by: java.lang.RuntimeException: Du
    如果是仓库依赖的方式直接使用exclude语句移除相同的依赖库即可,如下:implementation("org.java-websocket:Java-WebSocket:1.5.2"){excludegroup:'org.slf4j',module:'slf4j-api'//exclude掉websocket库依赖的slf4j库}但是如果是aar包或者jar包里面的类重复呢?这个......
  • RestTemplate连续读取两个不同文件时报错Read timed out
    在项目上负责对接一些三方接口,鉴于之前的经验,选择使用RestTemplate来实现各种http请求,以及文件的读取。首先写了RestTemplate的配置类来配置基础信息,代码如下:@Configuration@ConditionalOnClass(value={RestTemplate.class,HttpClient.class})publicclassRestTemplateCo......
  • 探索 Tokio Runtime丨Fabarta 技术专栏
    导读 本文将带您探索TokioRuntime的核心组件,同时会介绍其在ArcGraph项目中的应用。阅读本文后,您将会对TokioRuntime的基本原理有一个清晰的了解。此外,您也会对如何在项目中用好Tokio有很好的认知。01Tokio概述Rust是一门新兴的系统编程语言,它的独特之处在于成功......