|
STM32F103实现小车的转动 首先,我们要明白:电机转动的实质其实是对PWM波的控制输出;9 {% @! |# K8 n R4 l( 库函数直接调用封装好的函数 TIM_SetCompare1()或者用CCR调节占空比)& I# V9 T' N6 E: G G2 b ) f- C$ h% ?. Z5 | PWM波输出的原理图如下:2 M t X/ L; b9 m. ]3 z9 t1 ]
下面我从网上找到了一个L298N电机驱动实物图,进行详细的描述:(通过此图可以进行实物连接). u) M, H O& O8 c' C D1 c 注:千万小心,不要把引脚接反了,会少了芯片。
我小车是直接控制两个电机,四个电机分成两组。让其中一侧电机的状态相同,另一个状态相同,,没有分别单独控制。' ]4 o6 }4 j: `/ O, I 通过下图可以参考:IN1 IN2 IN3 IN4 1 0 1 0 实现电机的正转 小车前进 0 1 0 1 实现电机的反转 小车后退+ T& r0 L9 E6 W4 V 1 0 0 1 小车右转 0 1 1 0 小车左转! q8 x4 g9 L+ l & v/ R Q& ?8 _4 P + F4 d' g! ^2 y% s/ i 但所有的前提是要先学会时钟实验和GPIO的初始化,这个时候就要补上上次STM32学习的内容了。4 I* _/ M, Q1 i5 F( b! S 先进行STM32时钟和GPIO的学习0 s: n+ t$ C5 r) `6 o9 l 附上电机初始化代码
! ?' T$ u# a! B, Y' Y$ |! ^$ l3 D 需要注意的是PWM时钟输出的arr和psc的关系:; M$ m. y0 G1 ?0 S. L 系统时钟设置为72MHz; PWMFre=Sys/(arr+1)(psc+1) TIM1_PWM_Init(999,71);//分频。PWM频率=72000/(999+1)*(71+1)=1Khz4 l0 D- N+ {- V 周期为:1/1khz; " {' B( Q% F0 E4 m. Q: \( o2 z 6 i* [. q5 n Z; M3 z* M2 E* p 3 ?- O( q3 h- H+ i2 w3 p- Y ] |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版