在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

相关文章

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)