第五章-PWM控制电机 开源stm32循迹小车详细制作过程(附加完全版代码)

电子说

1.3w人已加入

描述

[]()功能介绍放开头, 使用便捷无需愁。

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。

V3.3.0-STM32智能小车

视频:
https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click

V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

第五章-PWM控制电机

5.1-认识PWM

参数如何描述PWM
代码

5.2-PWM配置

根据我们小车原理图我们知道是 PA11和PA8两个引脚要设置为PWM输出

这里为什么小车原理图要这样设计那?

  1. 根据A4950的使用要求
  2. 根据STM32F103C8T6的定时器复用功能重映射
    3.代码
    我们这先介绍原因:

原因1:介绍电机驱动后,我们会说明

原因2: 因为STM32中文参考手册介绍了,TIM1_CH1和TIM1_CH4可以复用功能重映射到PA8和PA11
代码
我们使用软件配置 PA11和PA8这里配置
代码
代码
代码

然后我们生成代码

PWM输出的配置就已经完成了,但是不能输出产生PWM波,因为Cube在生成代码时,有很多外设初始化完后默认是关闭的,需要我们手动开启。
代码

HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//开启定时器1 通道1 PWM输出
  HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);//开启定时器1 通道4 PWM输出

我们软件仿真一下、查看PA11与PA8波形
代码
那么频率就是 1/0.002 = 500HZ

这就是我们要设置的

我们可以使用这个宏来修改占空比

__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 40);

代码

5.3-PWM测试方法

上面我们生成了PWM下面我们测试一下

KEIL软件仿真方法:

软件模拟仿真不需要任何硬件-下面是官方介绍
代码
选择软件仿真
代码

DARMSTM.DLL
-pSTM32F103C8

设置时钟频率-板子外部晶振8Mhz 这里我们选择8Mhz

(新版的keil5里没有那个设置频率的功能)
代码
开启仿真
代码
打开逻辑分析仪器
代码
添加要观察的引脚
代码
点击全速运行
代码

使用仿真器硬件仿真

选择仿真器仿真-检测已经识别出芯片ID

代码
一样的可以开启仿真
代码
但是硬件仿真好像目前还不能使用过逻辑分析仪、但是硬件仿真是在硬件上跑的,可以向硬件输入数据或者由硬件输出数据、比如按键仿真的时候就可以使用硬件仿真。

使用示波器工具测量波形(非重点)

这章我们先讲到这里,下章我们说如何做电机驱动。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分