STMCU小助手
发布时间:2023-2-9 17:42
|
背景 本文用于记录平衡自行车的制作过程,及制作中遇到的问题;总体方案如下:采用采用STM32F103C8T6作为主控单元、MPU-6050作为位姿采集单元、0.96寸OLED显示位姿、无刷电机带动动量轮调节小车平衡、1S锂电池配合5V和12V升压模块作为电源、蓝牙模块用于无线控制及调试、SG90舵机用于控制行驶方向。 无刷电机简介 我用的无刷电机是在TB上淘的便宜货,小日本万宝至无刷电机,内置驱动,带100线双通道编码器,12V-24V的电压下均可运行。
无刷电机驱动 在上一篇专栏建立工程()的基础上,使用外部中断测量电机转速,使用定时器3产生PWM信号控制电机转速,从而实现电机的闭环控制。 1、STM32外部中断配合编码器测独特速度 将编码器A相与PA3连接,B相与PA4连接,并且连接编码器VCC、GND。 在mian.c文件中重新定义外部中断回调函数:
在mian()函数while循环中增加在OLED中显示编码器运动状态的相关代码:
最终演示效果如下:
2、STM32定时器PWM控制电机转速 在mian()函数增加下列代码,打开定时器3,并设置初始占空比为1(此时为PWM输出为高电平)
在mian()函数while循环中增加下列代码,是PWM占空比由1-0逐渐下降
通过测量PWM输出引脚的电压变化,大致判断PWM输出是否正常,如下所示:
3、STM32F103C8T6引脚、外部中断、定时器3配置如下: 设置PA3引脚为GPIO_EXTI3;PA4引脚为GPIO_INPUT;
打开外部中断3
设置外部中断引脚PA3为上拉,触发模式:上升沿触发
设置引脚PA4为上拉
设置定时器3通道1位PWM输出模式,PWM频率位20kHz(计算方式参考()),初始占空比为1000。
作者:DIY攻城狮 https://www.bilibili.com/read/cv21718261?spm_id_from=333.999.0.0 出处:bilibili |
在主机模式下使用STM32Cube HAL I2C驱动
【评论有奖】STM32CubeIDE 2.0版本要来了
F429I-DISC1体验报告(2) 按钮和弹窗GUI的简单交互设计丨国庆开发板测评活动
架构更新!STM32CubeIDE 2.0.0重磅发布,STM32CubeMX成独立工具(文末有奖)
在旧版本STM32CubeIDE内快速更新至STM32CubeIDE2.0
经验分享 | 基于STM32CubeIDE的指定存储话题
实战经验 | 使用STM32CubeIDE开发上位机工具
【教程】STM32CubeIDE for Visual Studio Code 安装
解锁STM32开发新体验,STM32CubeIDE for VS Code全解析(附实操视频)
速看!STM32CubeIDE for Visual Studio Code预发布版全面整合至正式版,完成重大升级
微信公众号
手机版
学习学习