本帖最后由 花间一壶酒sd 于 2023-10-27 01:19 编辑
前言
本人才疏学浅、文笔浅薄,对于pid调节和Cubemx的使用大多都是末学肤受,请您斧正!
这次我们使用的电机驱动芯片是TB213A;
我采用的芯片是stm32f401,使用的电机为MG513P10 12V,还需要20kΩ和33kΩ的电阻后面会说到。
本文使用的是Cubemx生成的基于hal库的开发,暂未采用Freertos操作系统。
一、进行pwm输出和相关引脚的配置
1.PWM输出配置
PWM的频率大概是10KHZ,CK_CNT=TIMXCLK/(PSC+1)。所以我们将预分配系数为0,arr寄存器的值为8400-1;
对“auto-reload preload”的设定值的一个提示:
auto-reload preload=Disable:自动重载寄存器写入新值后,该计数值立刻生效,作为当前计数周期的溢出值。
auto-reload preload=Enable:自动重载寄存器写入新值后,存放在预装载寄存器中,该值不会马上生效,计数器按照原来旧的溢出值进行计数。当计数溢出后,该计数值才会生效(由预装载寄存器转入影子寄存器),开始新的计数周期
一般而言:预装载功能在多个定时器同时输出信号时比较有用,可以确保多个定时器的输出信号在同一个时刻变化,实现同步输出。单个定时器使用时,一般不开启预装载功能。
版权声明:本文为CSDN博主「林叔叔336」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_59953808/article/details/128431703
|