从零开始写STM32平衡小车代码,从0到1

2023-11-02

从零开始写STM32平衡小车代码,从0到1

273cfdc033aaeb3e62f26bd6dea9b7a5.png

教你从零开始写STM32平衡小车代码

前言:

本人也是学生,只是分享一下自己的设计思路与代码教学。

这次STM32平衡小车是基于STM32CubeMX软件生成HAL库代码编写。

第一部分:前期准备

这部分主要是关于组装基本平衡小车需要的零件

1.小车车架以及电机固定架轮子和联轴器(我是通过淘宝上购买的)

2.带有编码器的直流电机

3.直流电机驱动电路(也可以通过网上购买推荐大鱼电子的电机驱动价格:30+)

4.一个STM32最小系统板(本人芯片型号为STM32F103ZET6)

5.一个陀螺仪随意型号可以买贵一点的这样数据不会很多毛刺,如果要节约成本就需要自己进行滤波优化了。(本人使用的是维特智能jy61p)

6.3S航模电池,想要小车跑起来电池是必不可少的

第二部分:新建STM32CubeMX工程

d94b135873ab528c63c23daad612552f.png主页面

进入页面后先选择一款MUC:点击 ACCESS TO MCU

0b56fe38d3b5149401c48bac31a0f766.png

在此搜索你们使用的芯片型号即可

c05d1ee08349e19442e9a46a2ec2c738.png

进去后先点击SYS修改Debug模式,我这里选择SWD

994dbe8a6cdf682948579885f0d1bfe4.png

在RCC下选择外部晶振如图

a7bf3d7404fde319919f23efe83a76d8.png

点击上方的时钟树,正确配置后只要在最后

413f6c52c404bb1919904b6516075409.png

这个位置,输入最大的速率,软件就会自动配置好时钟树

d44d168d09f42a48b47d6fb9d2a8469e.png

最后在上方的项目管理界面选择你要的IDE

2ccb6101f612b6ef3a91b78a759d0852.png

勾选需要的配置,这样工程就基本建立完成。

第三部分:配置需要的外设

在第二部分的基础上配置

1.定时器

a9fbfd815787250d355652be67c6c014.png

首先是定时器,想要驱动电机,我们需要配置定时器生成PWM波

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始写STM32平衡小车代码,从0到1 的相关文章

  • 基本数据类型的包装类

    基本数据类型的包装类 基本数据类型 数值 整数int byte short long 浮点型 float double 字符 char 布尔 boolean java是面向对象的语言 所有的对象都是继承自Object 对象都有属性和方法 但
  • 告别csdn,迁移到自己的博客网站

    一年过去了 懵懵懂懂也学了一些web网安的知识 写了大概60多篇的文章吧 不过自己太懒了 就没放到csdn上 后面干脆自己搭了一个博客网站 用springboot vue写的 当然这里面参考了很多大佬的代码 无论如何 自己也还只是踏入安全圈
  • 实现数组洗牌函数

    我们可能最常使用打乱数组顺序的方法是 Array prototype sort const shuffle list gt list sort x y gt Math random 0 5 但这种方法不是完全随机的 我们可以使用 Fishe
  • Python爬取美女图片案例

    爬虫常规思路 1 分析网页 2 对网页发送请求 获取响应 3 提取解析数据 4 保存数据 本案例所用到的模块 import requests import parsel import os 一 分析网页 分析思路 这个图片网站和别的图片网站

随机推荐

  • linux无法启动oracle数据库,Oracle数据库无法启动?可能是Linux的锅

    近日 在初始化系统的时候 有报错 最后查的是因为部署在一台linux系统上的oracle数据库有异常 登陆到系统中 切换到oracle用户查看数据库状态时 报错现象如下 再查看磁盘空间使用情况df h查看 根目录磁盘空间已经满了 sda3磁
  • 开关电源仿真与设计基于spice 第2版 中译本_电子电路设计SIMetrix / SIMPLIS 8.4介绍及安装教程...

    SIMetrix SIMPLIS 为模拟和电力电子工程师提供专业的电路设计和仿真工具 SIMetrix和SIMPLIS是在SIMetrix开发环境中工作的独立模拟器 可提供原理图输入 波形捕获和内置脚本 SIMetrix是一种混合信号电路模
  • 【Leetcode刷题】算法:罗马数字转整数

    文章目录 一 问题 二 代码理解 一 问题 二 代码理解 class Solution def romanToInt self s str gt int answer 0 length len s d I 1 V 5 X 10 L 50 C
  • Windows小Tips:在终端中优雅使用Vim

    Vim 本是 Linux 系统上一款文本编辑器 它是操作 Linux 的一款利器 程序员熟练使用后效率会显著提升 作为同时Windows的我也希望在Windows如Linux中那般优雅使用Vim Menu 一 将VIM添加至终端 二 将Vi
  • 线性表之顺序存储结构

    线性表是n n 0 个数据类型相同的数据元素组成的有限序列 数据元素之间是一对一的关系 即每个数据元素最多有一个直接前驱和一个直接后继 线性表的顺序存储结构是指在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素 元素之间的逻辑关
  • Vue3学习记录——(1)MVC与MVVM

    1 传统的MVC模式 模型 Model 数据存储 视图 View 用户界面 控制器 Controller 业务逻辑 Model代表数据存储 主要用于实现数据的持久化 View代表用户界面 UI 主要用于实现页面的显示 Controller代
  • wpf自定义控件之依赖属性

    这篇文章的意义是 为wpf自定义控件 定义它的专属属性 这个属性不仅仅可以在c 中使用 也可以在xaml中使用 在xaml中赋值或者绑定 在wpf开发过程中 总会用到格式各样的控件 但是原生控件远远不能满足实际开发的需要 这时候wpf强大之
  • Android NDK Jni 开发语言使用C和C++的区别

    由于Android官方NDK例子大多使用C语言编写 所以当我们想用C 进行开发时 会出现种种错误 下面简单说说几点不同之处 代码中有部分不同之处 1 先来一个用C写的例子 1 hello c文件 在C中没有引用 传递的env是个两级指针 用
  • 关于C#的变量问题:1.变量的声明,赋值,作用域

    1 变量的声明 变量的使用是编写程序中的一个重要环节 首先要做到第一步就是定义变量的类型 因为你需要让编译器知道变量类型后 才能按照类型对该变量进行空间的配置 变量的定义是 在程序运行过程中 空间内的值是变化的 这个内存空间就称为变量 而声
  • Maven之 setting.xml配置文件详解

    setting xml配置文件 maven的配置文件settings xml存在于两个地方 1 安装的地方 M2 HOME conf settings xml 2 用户的目录 user home m2 settings xml 前者又被叫做
  • 面试官:说说微信小程序的支付流程?

    一 前言 微信小程序为电商类小程序 提供了非常完善 优秀 安全的支付功能 在小程序内可调用微信的API完成支付功能 方便 快捷 场景如下图所示 用户通过分享或扫描二维码进入商户小程序 用户选择购买 完成选购流程 调起微信支付控件 用户开始输
  • 腾讯面经部分题

    1 僵尸进程 在linux系统中 当用ps命令观察进程的执行状态时 经常看到某些进程的状态栏为defunct 这就是所谓的 僵尸 进程 僵尸 进程是一个早已死亡的进程 但在进程表 processs table 中仍占了一个位置 slot 由
  • Android开发 无线Wifi+WifiUtil工具类,直面秋招

    for int i 0 i lt wifiList size i ScanResult wifi wifiList get i if wifi SSID equals ssid Log i AddWifiConfig equals Wifi
  • Matlab迭代算法实现

    牛顿迭代法 雅可比迭代法 高斯赛德迭代法 超松弛迭代法 SOR 共轭迭代法 牛顿迭代法 代码实现案例 原函数输入 function y newton x y exp x 4 2 x 1 任意函数 end 保存要进行牛顿迭代的函数 牛顿迭代函
  • 背包问题 python 背包九讲

    基础 01背包 t m list map int input split baowu None ditu 0 t 1 for in range m 1 for i in range m a1 a2 list map int input sp
  • Python笔记:NumPy 中的集合运算举例: 查找共同元素,差异元素和共有元素

    import numpy as np 创建一维 ndarray x x np array 1 2 3 4 5 创建一维 ndarray y y np array 6 5 4 8 7 输出 x print x x 输出 y print y y
  • Django 原生auth_user表数据库迁移报错处理方案

    最暴力的处理思路 假设我们数据迁移有问题 直接把数据库删除 项目 下所有app的migrations文件夹进行删除 然后注释掉admin这个应用相关的url路由 settings py文件里的app配置 admin进行注释 然后执行数据库迁
  • 下载安装钱德拉望远镜的软件CIAO

    一 下载安装Anaconda 1 下载 Anaconda下载网址 2 安装 bash Anaconda3 2020 11 Linux x86 64 sh 二 创建ciao的虚拟环境 1 1 创建一个名为ciao 4 12的虚拟环境 下载ci
  • .\Fire_FreeRTOS.axf: Error: L6221E: Execution region ER_RO with Execution range [0x00000000,0x000001

    Fire FreeRTOS axf Error L6221E Execution region ER RO with Execution range 0x00000000 0x00000178 overlaps with Execution
  • 从零开始写STM32平衡小车代码,从0到1

    从零开始写STM32平衡小车代码 从0到1 教你从零开始写STM32平衡小车代码 前言 本人也是学生 只是分享一下自己的设计思路与代码教学 这次STM32平衡小车是基于STM32CubeMX软件生成HAL库代码编写 第一部分 前期准备 这部