关于STM32的定时器问题集锦

发布者:Tianran2021最新更新时间:2021-06-09 来源: eefocus关键字:STM32  定时器  周期 手机看文章 扫描二维码
随时随地手机看文章

1、定时器外部计数功能


问:STM32处理器的定时器可以配置为对外部脉冲计数方式,其中一种方式是通过TIM的ETR引脚(外部触发引脚),另外一种方式是通过TIM的CH1或者CH2引脚来输入。现在我不明白这两种方式有什么区别,两种方式都能对外部脉冲计数,那么设置外部触发方式的目的指什么?


答:根据设计电路来使用不同的方法,他们最大的区别就是引脚不同,但是实现的功能是一样的。


2、TIM2用于捕获,如何调整TIM2的时钟?


问:TIM2用于捕获,如何调整TIM2的时钟?想调低TIM2的时钟频率,以减小计数器的值,避免溢出。


答:可在中断函数里修改配置。不过我想知道你的具体目的是什么


答:因被捕获脉冲频率很宽,有时较低,计数值过大,会超出0xFFFF。



3、关于捕获边沿的问题


问:STM32的输入捕获能在上升沿和下降沿都进行捕获吗?还是要么上升沿,要么下降沿?PWM输入模式除外,占用通道太多


答:是的。还有一种是只要有边沿就可以触发。


4、捕获比较寄存器捕获的值和计数器的值有什么区别?


问:捕获比较寄存器捕获的值和计数器的值有什么区别?


答:个人觉得可以这么理解,计数器的值在定时器输入时钟的驱动下不断增加,当外部信号满足捕获条件时,捕获控制中心会将此时计数器的数值拷贝到捕获比较寄存器,实质就是记录捕获事件发生的时间。


5、请教 一个STM8 定时器TIM1 PWM 输出的问题(TIM1 ARR被异常赋0)


问:各位高手,最近遇到一个STM8 PWM输出的怪问题, 我在初始化里配置TIM1 为PWM 输出模式, 输出的脉冲是用来供给步进电机细分驱动器的,每次TIM1更新中断时重新对ARR,CCR 赋初值。 但是系统经常是过一段时间,ARR就变成0了,查了好久也不知道是什么原因造成的,请大家帮忙看一下,下面是初始化程序 ,和中断处理程序(程序:http://www.stmcu.org/wall/index.php?act=read&id=4446)


答:ArrLastI-ArrLastI3 要使用绝对值,还有不要在中断例程里定义变量。 unsigned int waittabletemp; unsigned int ccrtemp;


6、关于stm32定时器TI1异或连接方式的理解


问:stm32在控制无刷直流电机的时候,霍尔传感器是以异或方式连接的,那么在捕捉的时候,捕捉到的极性应如何设置,捕捉到的是相邻的两个变化沿的时间间隔吗,求大侠解释


答:已上升沿或者下降沿作为基准,可以使用TIM比较功能。


7、stm32的计时器,到底同时计数的可以有多少路?


问:我需要对外部的30路信号进行同时计数,请问stm32可以多少IO口


答:如果你要用30路计数的话 我倒不推荐部用计数器去做 因为STM32只有2-4路计数器。STM32所有的IO管脚都可以作为中断口使用、那你完全可以把所有信号接入到IO上 在外部中断处理程序中去做计数功能,当然不清楚你检测的是什么信号,频率不是特别高的话 理论上是没有问题的


关键字:STM32  定时器  周期 引用地址:关于STM32的定时器问题集锦

上一篇:关于STM32的flash读写数据和HardFault_Handler的问题
下一篇:基于STM32的PCL6045B开发体会

推荐阅读最新更新时间:2024-11-06 14:35

STM32 Uart 实现printf函数
在《STM32 Uart 接收变长数据》的结尾,我们觉得每次使用这样的形式来输出信息感觉好麻烦,也不方便调试。 HAL_UART_Transmit(huart, &RxLenHi, 1, 1000); // 发送长度高位 HAL_UART_Transmit(huart, &RxLenlo, 1, 1000); // 发送长度低位 HAL_UART_Transmit(huart, uart4Rx, uart4RxLength, 1000); // 发送接收到的数据 所以我们就想想办法,看可不可以像标准C语言一样,使用printf往控制台打印信息。 在这一篇,我们提供了三种方法。
[单片机]
<font color='red'>STM32</font> Uart 实现printf函数
STM32 | MCU错误代码自动追踪库的使用经验分享
大家在用STM32的时候有没有遇到过HardFault的问题呢: 下面针对这个问题做个小总结。 现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会跑到 HardFault_Handler函数中,产生 HardFault,即硬错。其产生的原因大概有如下几类: (1)数组越界操作; (2)内存溢出,访问越界; (3)堆栈溢出,程序跑飞; (4)中断处理错误; 针对HardFault问题的定位,网上有几种方法,大概都是围绕着:在debug模式下,查看一些地址,分析寄存器、函数调用栈等,这是很让人头疼的事情。这里分享一种简单的、直观的HardFault错误定位的方法,使用开源库: CmBacktrace 。这
[单片机]
<font color='red'>STM32</font> | MCU错误代码自动追踪库的使用经验分享
意法半导体STM32Cube.AI 开发工具增加深度量化神经网络支持
意法半导体(ST)发布了STM32Cube.AI version 7.2.0,这是微控制器厂商推出的首款支持超高效深度量化神经网络的人工智能(AI)开发工具。 STM32Cube.AI 将预先训练好的神经网络转换成STM32微控制器(MCU)可以运行的C语言代码 ,是充分利用嵌入式产品有限的内存容量和算力开发尖端人工智能解决方案的重要工具,将人工智能从云端下移到边缘设备,能够为应用带来巨大的优势,其中包括原生隐私保护、确定性实时响应、更高的可靠性和更低的功耗。边缘人工智能还有助于优化云计算使用率。 现在,通过支持 qKeras 或 Larq 等深度量化输入格式,开发者可以进一步降低神经网络代码量、内存占用和响应延迟
[物联网]
意法半导体STM32Cube.AI 开发工具增加深度量化神经网络支持
stm32串口占用时间、消耗CPU及最大中断时间的深度分析
1、stm32串口发送占用的时间 答:做嵌入式以来,一直自认为在两个MCU之间的串口通信很占用时间,让我感觉很是不爽。经过一番查找资料后发现并没有我想象的那么糟糕。 串口发送数据: 发送数据在软件层面来看是按照字节来发送的。USARTx- DR = (Data & (uint16_t)0x01FF);CPU只需要把一个字节的数据填充到DR寄存器中就可以了,然后具体的发送过程是由硬件来完成,单字节的发送过程中不消耗CPU。但是为什么我们使用串口来发送连续的数据时为什么还是感觉到这么慢,而且连续发送的过程中CPU不能去做其他任务呢?究其原因是因为我们为保证数据发送的完整性在发送过程中加入了while(USART_GetFlagSt
[单片机]
stm32 灵活静态存储控制器(FSMC)(NORFLASH\PSRAM)
Flexible static memory controller(FSMC) 今天在处理TFT彩屏的时候突然发现有人用FSMC控制器来处理,然后就认真的研究了下FSMC; 可见他分为4个块,三个类型,我们可以根据自己的需要来选择;这次我就直说FSMC 的Block 1; 首先,基地址BASE_ADDR = 6000 0000;至于片选,datasheet上也说了,我们可以通过控制HADDR(27,26)来选择操作; 然后还有今天一直困扰我的问题,我要选择A16,我用的是16位数据,他的数据地址为6000 0000 + 2^16*2 = 6002 0000;我一直都在疑惑:明明是A16,为什么是第17位被置1,后来
[单片机]
<font color='red'>stm32</font> 灵活静态存储控制器(FSMC)(NORFLASH\PSRAM)
STM32中GPIO的8种工作模式介绍
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电路的
[单片机]
stm32NVIC与外部中断
实现功能:外部中断线0(PA0)与线15(PA15)分别连接到两个按钮,一个按钮用于产生上升沿,另一个用于产生下降沿,两个中断函数里均对PA8口连接的led灯取反,同时PD2连接的led灯随意延时取反指示程序运行。 这次我用了官方提供的例程来构建自己的工程,这样可以省下不少时间,而且减少了出错率,调试起来容易多了。 首先是stm32中断与外部中断的概念。 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持
[单片机]
stm32NVIC与外部中断
解析STM32的启动过程及STM32 启动文件选择
STM32 启动文件选择 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 - startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - st
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved