173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32设置TIM3重映射

keros@mark 2023-03-18 资讯中心

stm32中tim3重映设无pwm输出怎么回事

一般是程序问题,你可以从以下几点进行检查:

首先当然是tim的初始化,是否设置正确;GPIO是否设置为复用输出;Tim3和GPIO的时钟是否使能。引脚的主功能是否被初始化了时钟(这一点为方便理解,给你举个例子,假如这个引脚有UART1的功能,这个引脚的复用功能是TIM3,那么你就不能初始化UART1的时钟,否则会造成TIM3复用失败)。

STM32通用定时器PWM输出

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。

STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!这里我们仅利用 TIM3的 CH2 产生一路 PWM 输出。

PWM 相关的函数设置在库函数文件 stm32f10x_tim.h 和 stm32f10x_tim.c文件中。

TIM3_CH2 默认是接在 PA7上面的,而我们的 LED0 接在 PB5 上面,如果普通 MCU,可能就只能用飞线把 PA7 飞到 PB5上来实现了,不过,我们用的是 STM32,它比较高级,可以通过重映射功能,把 TIM3_CH2映射到 PB5 上。

STM32函数库对TIM3重映射有两种方法,一种是完全重映射GPIO_FullRemap_TIM3,这个比较好理解就是把TIM3的所有通道端口映射到Remap指定的端口上;还有一种是部分映射GPIO_PartialRemap_TIM3。

在库函数中,PWM 通道设置是通过函数 TIM_OC1Init()~TIM_OC4Init()来设置的,不同的通道的设置函数不一样,这里我们使用的是通道 2,所以使用的函数是 TIM_OC2Init()。

总结:PWM模式1下,TIMx_CCR1大时有效;PWM模式2下,TIMx_CCR1小有效。

有效电平的高低取决于TIM_OCPolarity的定义。本例子情况如下图:

至此,PWM初始化结束。

stm32定时器重映射一个通道是不是就所有通道都被映射了?比如我设置定时器3的通道二完全重映射,那

设定的时候只能设定时器3部分或者完全重映射,部分重映像只有通道1和2被重映射,完全重映像,四个通道都会被映射到其他IO。

STM32端口复用和重映射

STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。

简单易懂的说,就是某些普通的外设引脚也可以用来其它功能。比如说串口1 的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作普通的GPIO口,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。

我们知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出脚位都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的脚位外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的脚位。

STM32的端口重映射有三种模式:

以TIM3为例,没有重映射就是使用复用端口引脚,如下图,没有重映射4个输出通道引脚分别是在PA6、PA7、PB0、PB1;部分重映射,从字面上理解就是只改变一部分输出或输入引脚的端口,部分重映射后,TIM3的通道1和通道2从原先的PA6、PA7引脚改变到PB4、PB5了,而通道3、通道4还是在PB0、PB1保持不变;完全重映射,引脚全部改变了,通道1到通道4从原先的PA6、PA7、PB0、PB1变为PC6~PC9。

还是以TIM3为例

stm32中的重映射什么意思啊

意思是某些外设的输入输出脚位有多于一个组合的选择,重映射就是可以通过设定内部的路由,方便pcb布线或分配你设定外设不致于功能脚冲突

本文标签:stm32设置TIM3重映射

产品列表
产品封装
友情链接