在STM32F407ZGT6中调用不同定时器,想多做几个定时器注意事项

2024-04-09 22:08

本文主要是介绍在STM32F407ZGT6中调用不同定时器,想多做几个定时器注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

操作中,发现,当写TIM2,3,4,5时,无论是初始化函数,或者中断执行函数时,都很顺畅。

但当写TIM6发现,有错误,undefined,当排查错误时,发现:

以下是译文: 

通用定时器(TIMx)STM32F40x器件中嵌入了10个可同步的通用计时器(差异见表3)。Tim2, tim3, tim4, tim5STM32F40x包括4个全功能的通用定时器:TIM2。TIM5。TIM3。和TIM4。TIM2和TIM5计时器基于32位自动加载上/下计数器和16位预分频器。TIM3和TIM4计时器是基于16位自动加载上行/下行计数器和16位预分频器。它们都有4个独立的通道用于输入捕获/输出比较,PWM或单脉冲模式输出。这在最大的包上给出了多达16个输入捕获/输出比较/ pwm。TIM2。TIM3。TIM4、TIM5通用计时器可以一起工作,或者通过Timer Link特性与其他通用计时器和高级控制计时器TIM1和TIM8一起工作,以实现同步或事件链。这些通用计时器中的任何一个都可以用来产生PWM输出。TIM2。TIM3。TIM4。TIM5都有独立的DMA请求生成。它们能够处理正交(增量)编码器信号和数字输出从1到4霍尔效应传感器。TIM9。TIM10。TIM11 TIM12。TIM13, TIM14这些计时器基于一个16位自动加载上行计数器和一个16位预分频器。TIM10。TIM11。TIM13。TIM14有一个独立的通道,而TIM9和TIM12有两个独立的通道用于输入捕获/输出比较,PWM或单脉冲模式输出。它们可以与TIM2同步。TIM3。TIM4。TIM5功能齐全的通用定时器。它们也可以用作简单的时基基本定时器TIM6和TIM7这些定时器主要用于DAC触发和波形产生。它们还可以用作通用的16位时间基TIM6和TIM7支持独立的DMA请求生成。

因此我们不仅在中断函数名称中要注意,不是单纯的把4,5改成6就可以,还要注意在初始化中多少位自动加载和多少位预分频。

以上截图是由ctrl+f,并且在stm32f40xx.h文件中使用查找,找TIM7_IRQn(随便一个定时器都行,目的只是为了定位,找到定时器的中断函数名称位置而已)这个中断函数名,这时候我们发现之所以写TIM6出错,是因为中断函数名还有一个_DAC_。由芯片手册,我们也发现定时器6,7有点特殊,所以避开一下也好。

 

这篇关于在STM32F407ZGT6中调用不同定时器,想多做几个定时器注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Springboot如何配置Scheduler定时器

《Springboot如何配置Scheduler定时器》:本文主要介绍Springboot如何配置Scheduler定时器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Springboot配置Scheduler定时器1.在启动类上添加 @EnableSchedulin

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个

Springboot的自动配置是什么及注意事项

《Springboot的自动配置是什么及注意事项》SpringBoot的自动配置(Auto-configuration)是指框架根据项目的依赖和应用程序的环境自动配置Spring应用上下文中的Bean... 目录核心概念:自动配置的关键特点:自动配置工作原理:示例:需要注意的点1.默认配置可能不适合所有场景

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo