自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (15)
  • 收藏
  • 关注

原创 STM32-标准库和HAL库-不同容量系列的代码移植

使用STM32单片机过程中经常会涉及到不同芯片间的代码转换,手头上熟悉的工程需要稍作处理才能用到新的板子上。常见的是STM32F103xE、STM32F103xC(大容量)和STM32F103x8、STM32F103xB(中容量)的转换。分别介绍了标准库和HAL库的移植步骤

2023-11-22 15:57:33 756

原创 STM32-HAL库串口DMA空闲中断的正确使用方式+解析SBUS信号

使用STM32串口DMA空闲中断接收数功能实现串口解析航模遥控器sbus信号。本文进一步梳理一下HAL库串口空闲中断三种不同的使用方式,其中前两种使用DMA方式,最后一种使用HAL库自带的空闲中断机制。

2023-06-14 20:11:37 8172 4

原创 STM32勘误——CAN接收中断到底使用CAN1_RX0_IRQHandler还是USB_LP_CAN1_RX0_IRQHandler

最近测试新做的板子,使用了正点原子F407V3版本的HAL库例程代码(因为HAL库在更新,老版本的原子的例程使用的较老的HAL库)。但经过测试新老版本HAL库都不需要这样用,所以这个地方并不需要搞这么麻烦。评论区的高人知道真正原因的麻烦告知我哈,欢迎交流。查看了之前自己用的STM32Cube FW_F4 V1.4.0库时,同样用的。网上说由于PA11和PA12同时是USB引脚,所以CAN中断使用的是。实际上我用Cubemx生成的代码里面,默认的就是使用。,编译成功,但是CAN接收就死机了。

2023-06-13 17:19:37 2751 3

原创 Simscape Multiboby学习笔记7——Multibody仿真实例2双曲柄瞄准系统

详细讲解在Multibody中建立双曲柄瞄准机构并设计控制器仿真。结合笔者的理解介绍建模的通用流程。

2022-03-19 11:24:03 4306 7

原创 Simscape Multiboby学习笔记6——Multibody仿真实例1——质量弹簧阻尼系统

在Matlab Multibody里面建立质量-弹簧-阻尼系统并添加PID控制器进行位置控制。

2022-03-18 22:49:47 4804 1

原创 Simscape Multiboby学习笔记5——在Multibody中建立控制器-驱动力-传感器

详细介绍如何在Matlab Multibody中建立单摆并使用PID控制器控制单摆的角度。

2022-03-18 21:42:44 4337 2

原创 Simscape Multiboby学习笔记4——在Multibody中建立装配体(自由单摆)

如何在Simulink Multibody中建立一个自由单摆并模拟自由运动

2022-03-18 21:34:08 2890 2

原创 Simscape Multiboby学习笔记3——在Multibody中建立零件

手把手教你如何在Matlab Multibody中建立封装零件,如何建立坐标系,如何从外部导入三维零件。

2022-03-18 21:25:33 4357 2

原创 Simscape Multiboby学习笔记1——跟着官网学Multibody

文章目录一. 引言二. Simscape Multibody自学之路三. 本教程的目录一. 引言最近在倒腾Matlab的动力学仿真,起因是看到有人推荐Matlab的multbody模块,一经了解之下简直惊为天人。作为一名Matlab的小粉,看到这么好用的模块简直不要太开心,之前用simulink搭飞行器的仿真模型,虽然能够仿真看到六自由度位移,毕竟不能可视化,还是很不够直观,而且simulink仿真(以及更费力的脚本文件仿真)需要精确建模,模型不精确计算也是天差地别。而Multibody在具备其他动力学

2022-03-18 21:17:35 3699 1

原创 大疆M3508电机位置与速度PID控制及自编上位机调参

目录一. 简介一. 简介上一篇:大疆M3508电机使用CAN通信进行速度PID闭环控制详解,对官方代码进行了移植,分别使用CAN查询接收与CAN中断接收两种方式实现了电机的速度PID控制,去掉了官方的操作系统,代码精简易读不少。这一篇咱们再接再厉,利用M3508电机实现电机位置控制,同时配合博主编写的上位机软件,实现电机位置、速度的实时显示,通过可视化界面实现电机的PID调参与位置、速度设置。本文环境:Keil MDK5.14STM32CubeMX6.2.1Qt5.14开发板/芯片:正点原

2021-10-17 19:30:24 12965 25

原创 浏览器(Microsoft Edge)主页被360劫持的终极解决办法

今天开启Microsoft Edge发现主页变成了360搜索的主页,心里很膈应,我的电脑里没有安装任何360的软件,不知道是怎么被改动了,可能是装其他软件时被篡改了。尝试一: 更改edge浏览器的设置即使设置了打开特定网址,再次打开依然是360。放弃。尝试二: 求助网络,很多人说是在360安全卫士里面关闭主页锁定,但我没有装360,此路不通。尝试三: 以毒攻毒,既然如此,那就只能装一个360安全卫士了,用魔法打败魔法。最后成功,记录如下:(1)打开360安全卫士,以此点击功能大全,主页防护,第

2021-09-18 21:08:58 75173 21

原创 关于ubuntu18双系统安装时检测不到固态硬盘的解决

不要尝试乱七八糟的方法了,亲测没有用而且有用也很折腾。请安装ubuntu20,一撸到底。 新的硬件需要新的系统来支持。ubuntu20镜像下载链接:官方下载地址:https://www.ubuntu.com/download中科大源: http://mirrors.ustc.edu.cn/ubuntu-releases/20.04/清华大学:https://mirror.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/阿里云开源镜像站:http://mirr

2021-09-16 15:12:49 1381

原创 win10安装dlib问题记录

这两天安装dlib,使用pip install dlib一直失败。一路升级打怪终于给安上了,总结一下网上的帖子,记录一下。由于使用的Anaconda,根据网上的说法在Python3.6和python3.8环境各操作了一遍,方法都是下载安装包本地安装。本文环境:Anaconda Python3.8Anaconda env python3.6visual studio 2017(须大于2015版本)1. Python3.6环境首先需要安装cmake,boost:pip install cm

2021-08-16 13:06:33 2232 1

原创 大疆M3508电机使用CAN通信进行速度PID闭环控制详解

目录一. 简介二. 电机通信协议三. 电机PID控制原理四. 官方代码移植-中断接收五. 官方代码移植-查询接收一. 简介之前写过一篇文章STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法,其中是以大疆的M3508电机为例进行讲解的(没错,就是RoboMaster机器人同款电机,不过Robomaster上的电机好像是小一号的M2006)。不少小伙伴私信问我要代码,我都回复说不是有官方demo么。后来问的人多了我大概明白了,看来官方的Demo还是有点门槛。可能是带FreeRTOS操作系统看

2021-08-12 21:28:00 52770 49

转载 回车/换行(CR/LF), ‘\r‘和‘\n‘的区别

转载:1. 回车(CR)与换行(LF), ‘\r’和’\n’的区别2. ASII码中控制字符CR和LF的含义一. 回车”(Carriage Return)和“换行”(Line Feed)起源首先,弄清两个概念:回车CR——将光标移动到当前行的开头。换行LF——将光标“垂直”移动到下一行。(而并不移动到下一行的开头,即不改变光标水平位置)在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字

2021-08-07 09:54:26 385

原创 STM32_HAL库_CubeMx串口DMA通信(DMA发送+DMA空闲接收不定长数据)

目录一. 功能与环境二. 串口DMA与空闲中断原理三. CubeMx配置工程四. 驱动代码与应用程序五. 几点勘误一. 功能与环境这两天好好整理了一下STM32的串口通信,主要测试DMA方式发送与接收,以及配合串口空闲中断接收不定长数据。前后在F103和F767上都测试通过了。不过依然有一些问题想不明白,算了不甩它,暂且先能实现功能就好。本文环境:Keil MDK5.14STM32CubeMX6.2.1开发板/芯片:正点原子精英板F103ZET6/正点原子阿波罗F767IGT6实现功能

2021-07-18 17:28:58 21786 19

原创 STM32_HAL库_CubeMx实现STM32F1五个串口通信(单字节中断接收)

目录一. 串口通信简介二. STM32CubeMx实现STM32F103系列串口驱动三. 五个串口发送与中断接收例程一. 串口通信简介串口通信的原理网上教程一大堆了,入坑单片机的必会串口,这里就不多说了。唯一值得一提的就是STM32是有USART和UART之分的。UART就是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种异步收发传输器。USART是通用同步/异步串行接收/发送器(Universal Synchronous/Asynch

2021-07-13 16:23:26 4047 11

原创 STM32CubeMX安装步骤

安装STM32CubeMX需要JAVA开发环境,可以在官网下载https://www.java.com/en/download/manual.jsp也可以在我提供的网盘链接下载:地址:https://pan.baidu.com/s/1JX5YM6uFMZIBJkwwwBxuhg提取码:5232安装过程不细说了,直接一路next撸到底就行了,也不需要添加环境变量,很简单。安装STM32CubeMX。直接进入ST官网,搜索STM32cubeMX即可,这里直接给出网址 https://www..

2021-07-12 20:37:43 832

原创 如何优雅的在图片、MathType和Mathematica之间转换公式

目录一、如何从PDF/网页等截图中截图复制公式二、如何将MathType公式复制到Mathematica三、如何将Mathematica公式复制到MathType一、如何从PDF/网页等截图中截图复制公式在平时读论文或阅读网页时碰到一些公式想要复制到自己的文档中,一个个敲又太麻烦,可不可以直接截图复制呢?答案时可以的,这时候需要用用公式识别功能,推荐一个超级好用的小软件,mathpix snipping tool。软件界面如图所示操作方式我标出来了,点击左上角的截图符号,矩形框截取公式,软件就会OC

2021-06-24 15:23:43 3991

原创 安利一款HTML转PDF的小软件wkhtmltopdf

wkhtmltopdf是Windows下一款能够将HTML网页格式转换为图片或PDF格式文件的工具,下载页为:https://wkhtmltopdf.org/downloads.html。官网有时不好进可以去第三方网站下载,例如:http://www.pc6.com/softview/SoftView_559241.html.下载完成后直接点击exe文件安装,然后将软件路径添加到系统环境变量中,如下所示:打开我的电脑右键属性点击高级系统设置找到高级里面点击环境变量找到系统变量中的path,

2021-04-03 10:32:46 249

原创 STM32实现水下四旋翼(十二)数传任务1——PID参数掉电保存

目录一. 机器人掉电保存参数的原理二. 实现水下四旋翼PID参数掉电保存(一)STM32F767 FLASH原理(二)FLASH读写参数实现(三)创建数传任务Transmission_task一. 机器人掉电保存参数的原理由于水下机器人的PID参数众多,算一下三轴角度环、三轴角速度环、深度环,一共有7组PID也就是21个参数,不可能烧一次代码看一下运动效果,然后修改参数再烧代码再看效果,这样效率很低而且完全没有必要。所以必须要实现在线调参与参数掉电保存。那么如何实现呢?只需要在FLASH中开辟一块内存区

2021-03-31 20:40:17 1206 1

原创 解决STM32串口高速上传数据无法同时接收数据的问题

目录一. 问题描述二. 解决方案(一)使用字节发送而不是帧发送(二)使用DMA发送一. 问题描述之前做的一个项目中用了STM32F7的串口三做数传用,定时上传机器人数据,上位机(地面站)接收数据在界面显示,同时上位机可以发送数据到机器人,达到调参、校准等目的。数据上传正常,数据下发一直有点问题,时灵时不灵,改参数一会能改一会不能改,就很迷。因为下传数据的链路是上位机串口发送——下位机串口接收——下位机修改参数——下位机上传新的参数——上位机接收——上位机显示新的参数,迷茫的我一直以为是上位机写的出了问题

2021-03-28 11:05:02 3118 3

原创 ROS安装中sudo rosdep init和rosdep update失败的终极解决方法(最新版本)

一. 绪论关于ROS安装过程中遇到的sudo rosdep init和rosdep update失败问题,网上的帖子简直就是一大箩筐了。笔者最近又安装了一次ROS,发现以前记录的解决方法都不管用了,搜遍网上的帖子,99%是转载、或者过时了。最后终于找到一篇说清楚的了,可以参考这篇文章:ROS rosdep init/update报错终极解决方法。所以提醒大家,看帖子有时候要看最新的。。阅读量最大的都不一定比最新的管用。所以都2021年了,建党都100年了,大家看我这篇就够了哈哈哈~~~二. 失败原因

2021-03-20 16:59:21 18138 82

原创 STM32实现水下四旋翼(十一)飞行控制任务3——定深控制

目录一. 定深控制原理二. 姿态控制任务增加定深控制功能一. 定深控制原理前面我们讲过了姿态角的串级PID控制,那么现在来理解定深控制是非常好理解了。他们都是位置控制,这里的深度控制我只用了单级的PID控制器,显得会更简单。期望深度来源于遥控器摇杆的积分(在定深模式下油门通道变为上下运动的速度值),反馈深度来自于水深传感器的数据。控制原理为:这个图上一章就出现了,这里我们增加深度控制的位置环,只不过我没有加入Z轴的速度环,实验证明基本能实现定深,当然了响应不是很快,后续可以改进算法。定深控制时需要设

2021-03-09 21:51:09 1737 13

原创 STM32实现水下四旋翼(十)飞行控制任务2——控制分配

目录一. 控制分配的理论推导二. 控制分配的代码实现一. 控制分配的理论推导众所周知四旋翼有四个电机,控制的最后一环就是控制四个电机的速度。上一节我们讲到姿态角串级PID控制,三个角度环输出了三个控制量,加上油门量,一共四个控制量,那么这四个量如何分别决定四个电机的速度呢?这里需要一点点的理论推导,其实很简单。下图是我画的一般性四旋翼的布局图,可以看到是非对称的,因为我希望从一般情况下进行推导。其中四个电机标号从右上角顺时针旋转记为M1,M2,M3,M4。螺旋桨的旋向如图箭头所示。姿态传感器的安装如图

2021-03-09 20:58:41 2111 10

原创 STM32实现水下四旋翼(九)飞行控制任务1——姿态角串级PID控制

目录一. 绪论二. 角度环串级PID原理1. PID控制原理2. 串级PID控制原理三. 角度-角速度串级PID控制实现1. PID控制器的实现2. 串级PID控制器的实现四. 姿态控制任务创建与实现1. 姿态控制任务创建2. 姿态控制任务应用程序一. 绪论从这一篇开始就是姿态控制的内容了,这是核心算法部分。经过前面的部分我们实现了遥控器通信和传感器数据解析,解决了输入与反馈的问题。在闭环控制系统中,核心就是控制器的设计了。在智能小车、四旋翼、四足狗子等等一系列机器人的控制系统中,姿态控制(俯仰角、滚转

2021-03-09 16:58:38 3105 6

原创 STM32实现水下四旋翼(八)传感任务4——电池电量检测

目录一. 电压检测原理二. ADC读电压驱动代码三. 传感任务增加读电压应用代码一. 电压检测原理电压检测是为了检测机器人的电池电量,锂电池的电量与电压值是呈正相关的。锂电池是严禁过放的,不然很容易损坏,尤其是对于水下机器人,电池坏了就要开舱维修,重新密封,代价很大。电压检测原理很简单,初中都学过的分压定理。只需要两个电阻串联,将12V或24V的锂电电压降到3.3V以下的ADC检测范围,然后使用AD采样就可以读出电压值了。本项目中其实就是外连了两个电阻,然后用STM32的ADC功能读取电压,再推算电池

2021-03-09 11:53:49 3937 1

原创 STM32实现水下四旋翼(七)传感任务3——MS5837水深传感器读水深(超详细)

目录一. MS5837水深传感器介绍二. STM32读取水深传感器驱动程序三. 传感任务增加读水深的应用程序一. MS5837水深传感器介绍二. STM32读取水深传感器驱动程序三. 传感任务增加读水深的应用程序

2021-03-09 10:53:38 6100 11

原创 STM32实现水下四旋翼(五)自定义航行数据

目录一. 绪论二. 航行数据类型声明与定义一. 绪论这一篇算作番外篇。只是在写其他章节的时候绕不开很多自定义数据类型,所以干脆另成一篇。为什么要自定义数据类型(准确来说就是结构体),因为一方面有其物理意义,一方面非常便于编程,大大提高代码的可读性(可以理解为C++的对象)。水下四旋翼(包括空中四旋翼)在航行过程中有大量的数据需要处理,如果单独定义为一个个的变量会非常复杂。所以按照物理意义和功能,定义为不同类型的数据(结构体),有相近物理意义和功能的数据作为结构体的成员,新增数据只需在结构体中增加成员即

2021-03-03 22:00:25 1092 2

原创 STM32实现水下四旋翼(六)传感任务2——姿态解算代码实现(使用角度传感器)

目录一. 绪论二. JY901B与JY-GPSIMU角度传感器介绍1. 角度传感器简介2. JY901B的IIC通讯协议3. JY-GPSIMU的串口通讯协议三. STM32的IIC与串口读取三轴角度驱动程序1. IIC读取JY901B角度传感器的角度2. UART读取JY-GPSIMU角度传感器的角度四. 传感任务应用程序1. 姿态角滑动平均滤波2. 传感任务创建3. 传感任务中应用程序一. 绪论上一篇STM32实现水下四旋翼(四)传感任务1——姿态解算原理篇中我们一起复习了传感器测量原理与状态估计

2021-03-02 11:45:40 3614 23

原创 STM32实现水下四旋翼(三)通信任务——遥控器SBUS通信

目录一. 遥控器SBUS通信原理1. 遥控器通信原理2. SBUS通信协议二. 基于UCOS-III操作系统创建通信任务三. 实现SBUS通信驱动程序四. 实现遥控器SBUS通信的应用程序一. 遥控器SBUS通信原理1. 遥控器通信原理无人系统的远程控制包括遥手持遥控器控制和地面站控制。遥控器是实现无人车、无人机、无人潜航器运动控制的基本部件,用一个高大上点的词叫人在回路控制,或者人机协同控制。也就是将人的意志通过遥控器发送给机器人端,让机器人按照我们想要的动作去执行任务,例如前进后退、调速、调姿、调

2021-02-18 17:05:05 3601 7

原创 STM32实现水下四旋翼(二)硬件清单与软件设计

目录一. 引言二. UCOS-III操作系统简介三. 设计水下四旋翼的多任务系统四. 硬件电路设计一. 引言上一篇我们写了四旋翼的飞行原理,这一篇我们继续做准备工作,主要是讲解一下操作系统,我们的代码是基于操作系统实现的。为什么要用操作系统呢?你的电脑可以同时运行多个程序,得益于操作系统的运转。对于单片机来说是一样的,使用操作系统的单片机可以同时运行多个程序。你能忍受你的电脑同时只能运行Word或浏览器或其他什么东东的单个程序吗?显然不能,那么为什么你可以忍受单片机只有一个main函数呢?因为在此之前你

2021-02-16 10:50:27 3943 15

原创 STM32实现水下四旋翼(一)飞行原理

目录一. 引言二. 常见飞行器分类三. 一点解释:为什么写水下四旋翼要写飞行原理一. 引言飞行是人类孜孜以求的梦想。从庄子的"御风而行"、"扶摇而上"到武侠神鬼小说中的轻功、御剑飞行,各种文字、图腾都满含飞行的朴素理想,据说每个大男孩心中都有一个飞天梦。对于一个理工科的大男孩来说,制造一个飞机恐怕是更有诱惑力吧!网络时代知识共享,开源社区的盛行让这不再是难事,事实上你想学,大把的资源可供利用。当你打开一扇门,展现在你眼前的是一个世界、一个全新的世界,学习不再枯燥痛苦,反而变得那么的生动、有趣。我希望看到

2021-02-10 20:38:33 3156 4

原创 STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法

目录一. 绪论二. 电机速度环PID原理三. STM32使用CAN总线实现大疆M3508电机的速度闭环控制四. UCOS-III电机控制任务的实现一. 绪论本文接上一篇STM32实现四驱小车(四)姿态控制任务——偏航角串级PID控制算法,在本文中介绍电机的控制原理和使用CAN总线实现电机速度闭环的代码实操,最后实现电机的速度控制任务。二. 电机速度环PID原理电机的种类特别多,小型机器人(无人机、无人车)上普遍使用直流无刷电机,航模使用的一般是高速低扭矩,车模一般通过减速器低速实现高扭矩。一般电机与

2021-02-02 17:12:00 15032 8

原创 STM32实现四驱小车(四)姿态控制任务——偏航角串级PID控制算法

目录一. 绪论二. 角度环串级PID原理1. PID基本算法2. 姿态角串级PID原理三. 如何用STM32实现角度-角速度的串级PID控制1. PID算法的代码实现2. 串级PID算法的代码实现四. UCOS-III姿态控制任务的实现一. 绪论这一部分是核心内容,讲解姿态角的串级PID控制。在智能小车、四旋翼、四足狗子等等一系列机器人的控制系统中,姿态控制(俯仰角、滚转角、偏航角)都是核心内容,它决定了小车开得直不直,飞机飞得稳不稳。虽然现在先进的、智能的控制算法有很多,如自适应控制、神经网络控制、模

2021-02-02 12:14:41 13629 5

原创 STM32实现四驱小车(三)传感任务——姿态角解算

目录一. 绪论二. 惯性传感器测量原理1. 三轴加速度计2. 三轴陀螺仪3. 三轴磁力计三. 状态估计1. 姿态估计(1)线性互补滤波器(2)非线性互补滤波器(3)卡尔曼滤波器2. 速度估计3. 位置估计四. 姿态角测量与滑动平均滤波1. IIC读取JY901B姿态角2. UART读取十轴惯导姿态角3. 滑动平均滤波读取角度和角速度五. UCOS-III 传感任务实现一. 绪论本文接上一篇STM32实现四驱小车(二)通信任务——遥控器SBUS通信,在今天的文章中解决小车的姿态角测量问题,实现操作系统中的

2021-02-02 10:01:30 4615 5

原创 STM32实现四驱小车(二)通信任务——遥控器SBUS通信

目录一. 遥控器通信原理简介二. SBUS信号解析1. SBUS信号简介2. STM32F7解析SBUS信号三. 通信任务实现一. 遥控器通信原理简介要实现一个遥控小车当然要有一个遥控器了,目前市面上常用的航模遥控器基本都是2.4G无线信号,从遥控器到小车子的链路是这样的。接收机出来的信号一般有SBUS信号、PPM信号、PWM信号,SBUS信号就是一路串行信号,连接到控制板的串口按协议解析就行了。PWM信号就不说了,多路PWM接口表示多个信号,PPM信号也是一路信号,只不过它是一串波,它把多路PWM值

2021-01-30 20:19:26 10482 13

原创 STM32实现四驱小车(一)硬件与软件准备

目录一. 绪论二. 轮式机器人概述三. 硬件准备1. 机械底盘2. 电机选择3. 驱动板4. 传感器5. 电池四. 软件准备——UCOS-III操作系统一. 绪论匆匆忙忙的2020年结束了,在机器人平台开发方面算是搞清了些端倪。近来总算有时间回顾过往,稍作整理。计划写一个专题系列,内容即为“机器人控制系统设计与实现”,这将会是我的系列文章的宗旨。机器人平台从地面无人车到空中无人机到水下无人潜航器,这将是一个可上九天揽月、可下五洋捉鳖的宏大蓝图。讲述内容从控制算法到嵌入式软件开发,从计算机仿真到单片机实

2021-01-30 17:32:11 9730 7

原创 STM32使用HAL_DMA_PWM方式驱动WS2812全彩灯珠

文章目录一、WS2812全彩灯珠原理与驱动方式二、STM32使用HAL库配置DMA方式输出PWM控制WS2812一、WS2812全彩灯珠原理与驱动方式关于WS2812系列灯珠的介绍这里就不讲了,网上资源一大堆,还没找到教程的可以参考这篇文章:STM32驱动WS2812D全彩LED。这里还是把时序波形图附上,方便后面讲解。驱动WS2812的关键就在于一是要输出800KHz的方波,二是要精确控制每个周期内高低电平时间从而输出能够被WS2812识别的逻辑1和0。之后只需要定义一个输出缓冲数组,往数组里边

2020-11-10 16:45:10 12068 18

原创 STM32F1/F7使用HAL库DMA方式输出PWM详解(输出精确数量且可调周期与占空比)

文章目录一. STM32的DMA PWM原理1. DMA简介2. DMA方式输出PWM是怎么回事3. HAL库DMA配置PWM的几个函数二. STM32CubeMx配置 DMA PWM三. 波形调试过程分析一. STM32的DMA PWM原理最开始疑惑过STM32如何才能实现精确数量的脉冲输出从而控制步进电机,直到做WS2812B灯珠的驱动程序时才知道原来有DMA-PWM模式。使用DMA输出PWM可以精确控制脉冲数量,且可以精确控制脉冲周期与占空比,更重要的是使用DMA传输不消耗CPU资源。于是乎

2020-11-03 16:46:06 23921 67

STM32F7_HAL_CAN_M3508_位置与速度PID_SBUS遥控器控制.zip

使用STM32F7单片机实现M3508电机的位置PID和速度PID控制,使用乐迪遥控器进行模式切换和位置、速度、电流设置,单片机与遥控器接收机采用SBUS通信。

2021-10-17

大疆M3508电机位置速度控制上位机.zip

大疆M3508电机位置速度控制上位机,下位机需要根据对应的通信协议去写通信部分,请配合本人的博客使用,地址:https://blog.csdn.net/qq_30267617/article/details/120764889

2021-10-17

STM32F7_HAL_CAN_M3508_位置与速度PID_上位机可调参数.zip

使用STM32F7单片机控制M3508电机实现电机位置控制和速度控制,同时配合本人编写的上位机软件,实现电机位置、速度的实时显示,通过可视化界面实现电机的PID调参与电机模式、位置、速度设置。请配合本人的博客使用,地址:https://blog.csdn.net/qq_30267617/article/details/120764889

2021-10-17

STM32F7_HAL_CAN_M3508.zip

分别使用查询接收与中断接收两种方式改写了官方demo,实现大疆M3508电机CAN通信速度PID控制,测试环境为stm32F7。去掉操作系统后代码精简易读不少,阅读官方demo感觉有难度或不会移植的可以使用这份例程。

2021-10-10

STM32F4_HAL_CAN_M3508.zip

分别使用查询接收与中断接收两种方式改写了官方demo,实现大疆M3508电机CAN通信速度PID控制,测试环境为stm32F4。去掉操作系统后代码精简易读不少,阅读官方demo感觉有难度或不会移植的可以使用这份例程。

2021-08-12

STM32F103串口解析SBUS信号.zip

STM32F103串口解析SBUS信号,使用方法: 1. 使用串口2连接接收机 2. 使用串口1连接串口调试助手; 3. 接收机需要连接方向器再连接串口; 4. 串口配置请按照sbus的通信协议,具体看工程中的串口初始化。

2021-07-19

STM32F767串口DMA与空闲中断接收不定长数据.zip

本例程实现STM32F103ZET6的串口DMA发送与串口DMA接收,配合串口空闲中断可以接收不定长数据。讲解内容可以参照本人的文章:https://blog.csdn.net/qq_30267617/article/details/118877845。

2021-07-19

STM32F1串口DMA与空闲中断接收不定长数据.zip

本例程实现STM32F103ZET6的串口DMA发送与串口DMA接收,配合串口空闲中断可以接收不定长数据。可以参照本人的文章:https://blog.csdn.net/qq_30267617/article/details/118877845。

2021-07-18

STM32F103实现五个串口的驱动程序.zip

在STM32F103系列上实现五个串口的驱动,全部使用中断接收方式。最后的功能是上位机通过串口调试助手向任何一个串口发送数据(以回车键结束),单片机都即时通过串口1返回接收的数据。使用原子哥的精英版子测试通过,当然任何一个最小系统板或其他板子都可以测试。工程可以作为串口通信的驱动模板下载使用。

2021-07-13

ROS安装文件rosdistro-master.zip

这个文件是ROS安装中执行sudo rosdep init和rosdep update时用到的,可以使用里面的本地文件解决sudo rosdep init和rosdep update失败的问题。是最为彻底的解决方案。使用教程可以看题主的博客:https://blog.csdn.net/qq_30267617/article/details/115028689 如果本资源下载需要积分了那就是系统擅自改的,我已经改回很多次了,实在没办法了。没有积分的请私聊我发送。

2021-03-20

MS5837-30BA水深传感器中文手册与STM32代码

MS5837-30BA压力传感器的英文手册与本人翻译的中文版本。中文翻译里面加上了我的解读,附上了关键部分的代码,写的非常详细。同时提供了stm32解析水深数据的例程。想学习MS5837的看着一份资料绝对够了。 如果本资源下载需要积分了那就是系统擅自改的,我已经改回很多次了,实在没办法了。没有积分的请私聊我发送。

2021-03-09

STM32F767—— UCOSIII工程模板.zip

这是正点原子阿波罗开发板的UCOS-III操作系统教程的的时间片轮转调度的例程,可以作为操作系统的工程模板。

2021-02-10

STM32F767使用HAL_DMA_PWM方式驱动WS2812灯珠

功能:使用STM32F767控制器,HAL库CubeMx软件开发,DMA方式输出PWM驱动WS2812灯珠,移植了部分Adafruit_NeoPixel库,可以实现酷炫灯光效果。 说明:使用F1、F4系列需要更改定时器的输出引脚,还需要根据定时器时钟计算重装载值,使PWM频率、高低电平时间与WS2812匹配。 本文配套分享文章链接:https://blog.csdn.net/qq_30267617/article/details/109600880,欢迎阅读讨论。 如果本资源下载需要积分了那就是系统擅自改的,我已经改回很多次了,实在没办法了。没有积分的请私聊我发送。

2020-11-22

STM32F767_HAL_UART解析乐迪接收机SBUS信号

功能:STM32F767解析乐迪接收机SBUS信号并通过串口打印出通道数值。 说明:1. 使用stm32F1/F4系列只需要在初始化函数中改变串口对应的引脚即可。 2. 本例程适用各品牌使用SBUS协议的遥控器接收机。 3. 注意不同品牌的遥控器解析出来的SBUS信号通道值是不一样的,乐迪的是300-1700,本人用过另外一款是341-1707,使用串口打印出来即可知道范围。根据sbus范围对应到PWM范围1000-2000或500-2500. 如果本资源下载需要积分了那就是系统擅自改的,我已经改回很多次了,实在没办法了。没有积分的请私聊我发送。

2020-11-22

STM32F1使用HAL库DMA方式输出PWM例程(输出精确数量且可调周期与占空比)

STM32F1使用HAL库DMA方式输出PWM例程,可以输出精确数量且可调周期与占空比的方波。测试时请结合示波器或逻辑分析仪。本人另外写有一篇与本例程对应的分享文章,链接https://blog.csdn.net/qq_30267617/article/details/109466698,欢迎阅读讨论。 如果本资源下载需要积分了那就是系统擅自改的,我已经改回很多次了,实在没办法了。没有积分的请私聊我发送。

2020-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除