在使用定时器的输入捕获进行频率测量时发现用TIM_Cmd()函数关闭定时器后,输入捕获中断还是会被触发,这就很奇怪了,输入捕获是定时器的一种模式,关闭定时器不就意味着输入捕获捕获也被关闭了吗?可是实际并非如此,输入捕获中断正常触发,但是捕获值都为0,那就只有一种可能了——TIM_Cmd()只能关闭计数器,并不能关闭中断。于是我马上查看TIM_Cmd()函数的定义



发现TIM_Cmd()函数内部实现是配置CR1寄存器的CEN位,查看参考手册发现该位为计数器使能位



通过这个问题,我发现自己还是对STM32不是特别熟,很多时候自己觉得懂了,其实也只是知道如何使用,更深入的原理和一些细节自己还是没有掌握或注意到,这就给后续使用埋下了隐患。说到底还是一个细心的问题,编程遇到后面越需要细心,这里的细心有指芯片使用上的细心,也有逻辑上的细心,一个系统运行正常并不意味着没有问题,只能说明发生问题的条件没有出现,程序是人写的就会或多或少存在逻辑上的漏洞,尤其是在存在中断的系统可能会出现竞争,一个程序从某个局部来分析没有问题,但放到整个系统上去分析就可能会出现逻辑漏洞了。所以,我们在写程序时一定要保持严谨的逻辑思维,尽可能注意到细节和漏洞,多思考、多推演。

TIM_Cmd()函数引发的思考的更多相关文章

  1. 由项目中一个hash2int函数引发的思考

    hash2int /** * 计算一个字符串的md5折算成int返回 * @param type $str * @return type */ function hash2int($str) { $m ...

  2. 由SecureCRT引发的思考和学习

    由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...

  3. 【C/C++】Linux下system()函数引发的错误

    http://my.oschina.net/renhc/blog/54582 [C/C++]Linux下system()函数引发的错误 恋恋美食  恋恋美食 发布时间: 2012/04/21 11:3 ...

  4. SQLAlchemy并发写入引发的思考

    背景 近期公司项目中加了一个积分机制,用户登录签到会获取登录积分,但会出现一种现象就是用户登录时会增加双倍积分,然后生成两个积分记录.此为问题  问题分析 项目采用微服务架构,下图为积分机制流程   ...

  5. FastAdmin Bootstrap-Table 关于客户端模式(由 计算所有页的的总数引发的思考)

    Bootstrap-Table 关于客户端模式(由 计算所有页的的总数引发的思考) 昨天群里有小伙伴询问 Bootstrap-Table 有没有计算所有页的总数. [吐槽]★隔壁老王-杭州 @F4NN ...

  6. 由[].slice.call()引发的思考

    由[].slice.call()引发的思考   经常看到大家用[].slice.call()或者Array.prototype.slice.call():  我一直是一知半解的,今天算是基本弄清楚了, ...

  7. Spring之LoadTimeWeaver——一个需求引发的思考---转

    原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...

  8. 解决一道leetcode算法题的曲折过程及引发的思考

    写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...

  9. 转:一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...

  10. 【思考】由安装zabbix至排障php一系列引发的思考

    [思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...

随机推荐

  1. wandb一个简单demo

    wandb绘制曲线:sin函数,cos函数,log函数. wandb绘制本地图片 wandb绘制matplotlib图片 wandb绘制numpy图片 import math import wandb ...

  2. Linux下的权限(角色,文件权限)

    目录 1.什么是权限 2.文件类型及权限 ①Linux文件类型: ②剩余9个字符对应的含义: ③文件权限值的表示方法(进制法) 3.如何操作权限 3.1改变权限的命令操作 chmod #change ...

  3. mockjs 模拟实现增删改查

    /*mUtils.js用于解析get请求的参数*/ export const param2Obj = url => { const search = url.split('?')[1] if ( ...

  4. 第十課-Change Mirth Connect To Mariadb

    随着接口部署数量和交互数据越来越多,原来基于Mirth Connect默认derby嵌入式数据库下运行越来越不能满足高性能.高可靠等线上刚性需求:故需要切换Mirth Connect的运行后台数据库. ...

  5. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)

    简介: 本篇是"SpringCloud 应用在 Kubernetes 上的最佳实践"系列文章的第六篇,主要介绍了如何保障生产环境服务稳定,做到随时发布,从而加快业务的迭代和上线速度 ...

  6. 十年再出发,Dubbo 3.0 Preview 即将在 3 月发布

    ​简介:随着Dubbo和HSF的整合,我们在整个开源的体系中更多地去展现了 HSF 的能力,能够让更多的人通过使用 Dubbo 像阿里巴巴之前使用 HSF 一样更好的构建服务化的系统. 2011 年, ...

  7. Spring Boot参数校验以及分组校验的使用

    简介: 做web开发基本上每个接口都要对参数进行校验,如果参数比较少,还比较容易处理,一但参数比较多了的话代码中就会出现大量的if-else语句.虽然这种方式简单直接,但会大大降低开发效率和代码可读性 ...

  8. kubeadm搭建单master多node节点的k8s集群(3)

    一.实验环境准备 K8s集群角色 IP 主机名 安装的组件 配置 控制节点 192.168.1.10 master apiserver.controller-manager.scheduler.etc ...

  9. Modelsim使用指南

    Modelsim使用指南 本文讲述Modelsim的使用步骤. 添加一个测试文件,比如modulename.v. 编辑这个Verilog模块. 为了方便讲述,顶层模块名命名为"top&quo ...

  10. Solution Set - 贪心和数据结构

    感觉自己好菜啊,这个专题真的不太会. CF1439C Greedy Shopping Link&Submission. 容易发现,当此人连续买了一段物品之后,他的钱数至少减半.所以他最多只会买 ...