[其他ST产品] STM32——TIM输出比较

[复制链接]
7070|61
 楼主| 4c1l 发表于 2024-3-31 14:13 | 显示全部楼层
解决调试端口的复用
SWJ——SWD/JTAG两种调试方式

调试端口
403006608fefca93bc.png


使用
787966608ff034ac36.png
PB4变成普通IO口
566036608ff0a19539.png
PA15、PB3、PB4变回普通IO口
78136608ff1074ad9.png


五个引脚全部变为普通GPIO,没有调试功能,千万小心使用

如果你重映射的引脚正好是调试端口,三步走

//打开AFIO时钟
  //重映射引脚
    //解除调试端口
 楼主| 4c1l 发表于 2024-3-31 14:13 | 显示全部楼层
6-2 PWM驱动舵机

378196608ff246043e.png
同一个定时器不同通道输出PWM的特点:
对于同一个定时器的不同通道输出的PWM,共用一个CNT计数器;所以他们的频率必须一样,
他们的占空比由各自的CCR决定,所以占空比可以各自设定;
他们的相位,由于计数器更新,所有的PWM同时跳变,所以相位是同步的
 楼主| 4c1l 发表于 2024-3-31 14:14 | 显示全部楼层
 楼主| 4c1l 发表于 2024-3-31 14:14 | 显示全部楼层
错误——
908726608ff45db3db.png
530766608ff4baa85d.png
错误——2.情况:SWJ功能在代码中被关闭了
 这种情况的特点往往是:之前烧录都好好的,某次烧录后突然就不行。并且当你一直按着开发板的reset键时,你会发现又能识别设备了(根据这个现象,网上有给出先按住reset键,在点烧录按钮后立刻松开reset的笨办法,这个方法看手速和人品,有概率解决)。
 楼主| 4c1l 发表于 2024-3-31 14:14 | 显示全部楼层
存疑
930146608ff62dc6b1.png
     中定义了PB1、PB11两个GPIO,但是在PB1接入一个按键的基础上,再在PB11上接一个按键,这个PB11上的按键相当于RESET复位按键,为什么呢???
 楼主| 4c1l 发表于 2024-3-31 14:15 | 显示全部楼层
PWM驱动直流电机
PA2对应与——TIM2的通道三


493886608ff6fcce04.png
546046608ff757935f.png
 楼主| 4c1l 发表于 2024-3-31 14:15 | 显示全部楼层
发现问题:电机会发出像蜂鸣器一样的响声——因为电机里面也是线圈和磁铁,如何避免此问题?
A:加大PWM频率,当其频率足够大时,超出人耳范围时,就听不到了,人耳听到声音的频率是20Hz—20KHz,
449266608ff8ac21c9.png
我们目前给的是1KHz,人耳可以听到
403286608ff9077695.png
由于声音太大,没能下载,只是编译。
中国龙芯CDX 发表于 2024-3-31 22:57 | 显示全部楼层
TIM输出比较还是非常实用的
sanfuzi 发表于 2024-4-5 21:44 | 显示全部楼层
在需要时,通过软件更新CCR的值,以改变PWM脉冲的宽度。
maudlu 发表于 2024-4-6 14:46 | 显示全部楼层
STM32微控制器的定时器(TIM)模块具有输出比较功能,它允许开发者通过定时器计数器的值与捕获/比较寄存器(CCR)的值进行比较,从而实现精确的定时控制。输出比较功能常用于生成脉冲宽度调制(PWM)信号,控制电机速度、LED亮度等应用。
loutin 发表于 2024-4-7 11:10 | 显示全部楼层
TIM定时器的输出比较功能广泛应用于需要精确时间控制的场合,如电机驱动、信号同步、事件计时等。它允许微控制器对外部设备进行精确的时间管理和控制。
benjaminka 发表于 2024-4-7 13:57 | 显示全部楼层
在STM32中,输出比较模式可以根据不同的应用需求进行调整,以适应不同的功能需求。例如,单路输出比较模式允许一个通道输出PWM方波,而其他模式则可能适用于更复杂的应用场景。
pixhw 发表于 2024-4-7 18:52 | 显示全部楼层
为了深入理解和使用STM32的TIM输出比较功能,可以参考相关的教程和视频资源
biechedan 发表于 2024-4-8 16:58 | 显示全部楼层
为了配置和使用TIM输出比较功能,通常需要遵循一系列步骤:

开启相关的时钟,包括TIM外设和GPIO外设的时钟。
配置时基单元,包括选择时钟源和设置预分频值。
配置输出比较单元,设置CCR的值、输出比较模式、极性选择以及输出使能等参数。
配置GPIO,将PWM对应的GPIO口初始化为复用推挽输出模式。
启动计数器,这样TIM输出比较功能就能开始工作了。
benjaminka 发表于 2024-4-9 18:12 | 显示全部楼层
通过设置TIMx_CCER(捕获/比较使能寄存器)来启用或禁用输出比较通道。还可以设置输出类型(推挽输出或开漏输出)、输出极性(正常或反向)和输出状态(高电平、低电平或禁止)。
youtome 发表于 2024-4-10 10:21 | 显示全部楼层
选择要输出比较信号的通道(如TIM_CH1、TIM_CH2等),并配置通道的比较值、极性、输出模式等参数。
uptown 发表于 2024-4-11 18:58 | 显示全部楼层
STM32通常有多个TIM实例,每个实例包含多个输出比较通道(OCx)。你需要根据需求选择正确的TIM实例和通道。
jtracy3 发表于 2024-4-12 00:21 | 显示全部楼层
TIM定时器的输出比较功能通过比较计数器(CNT)的值和捕获/比较寄存器(CCR)的值。当两者的值相匹配时,会根据设定的输出模式进行相应的操作。
loutin 发表于 2024-4-12 04:59 | 显示全部楼层
STM32的TIM输出比较功能是一种强大的工具,它允许用户通过比较时基单元中的计数器(CNT)和捕获/比较寄存器(CCR)的值,来控制输出电平的置1、置0或翻转操作。这种功能常用于生成具有特定频率和占空比的PWM(脉冲宽度调制)波形。
vivilyly 发表于 2024-4-12 10:29 | 显示全部楼层
通过TIMx_CCRx(比较捕获寄存器)设置比较值,这是输出比较通道触发电平时计数器的预期值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部