自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于ESP32下载的几个小问题

在使用esp32的时候,下载遇到了这么几个小问题,写一下解决方法。

2024-05-08 16:10:32 218

原创 VS code ESP-IDF 提示“loading ‘build.ninja‘: 系统找不到指定的文件” 的解决方案

那这样的话,我直接先清除下编译是不是也能行呢,意思就是文件的编译是之前的编译环境,自然找不到那个文件了,也就是ninja这个文件,但我查看我的安装里面是有这个程序的,那就是编译环境不一样,说干就干,果然清除完一次编译后直接就可以再次编译了。在网上找到一种方法就是将文件拷贝到之前新建的文件里面,确实是可以编译了。左边是不能编译的文件,右边是复制到新建的里面可以编译的文件,很明显的区别是多了一个编译的文件夹,但到底是什么不一样呢,我就使用对比软件对比了一下,

2024-05-07 15:05:46 258

原创 Component ‘mscomm32.ocx‘ or one of its dependencies not correctlyregistered: a file is missing缺少DLL

在安装某个软件的时候,安装也是正常的,但是打开软件的时候会出现Component ‘mscomm32.ocx’ or one of its dependencies not correctlyregistered: a file is missing or invalid,从内容上看,是缺少某个文件导致的,也就是mscomm32.ocx,错误信息表明 mscomm32.ocx 组件或其依赖项没有正确注册,因为有一个文件缺失或不有效。确保下载的是正确的版本(32位或64位),并与您的操作系统兼容。

2024-05-06 14:53:25 250 1

原创 杂谈-关于VS code Markdown插件不能显示视图

在其功能的激活事件里,突然看到只有当编程语言是Markdown时才会激活这个插件,于是注意到打开的默认语言是gcc-md,将编程语言改为Markdown即可。但是本来应该在右上角有预览页面的,却始终不能找到,重启重装都无法解决,网上也未查找到原因,特此记录。

2024-04-20 15:32:06 199

原创 雷龙NAND flash测试

大概样子就是上面这样,使用LGA-8封装,实际上驱动也是通用SD卡的驱动,相比与SD卡可以直接贴片到嵌入式设备中,并且体积更小,数据存储和SD卡存储一样。我使用的型号是CSNP1GCR01-AOW,不用写驱动程序自带坏块管理的NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容SPI/SD接口,兼容各大MCU平台,可替代普通TF卡/SD卡,尺寸6x8mm毫米,内置SLC晶圆擦写寿命10万次,

2024-02-27 09:51:26 722 1

原创 正点原子高速无线下载器下载bin文件

有时候需要帮忙调试,直接下载写好代码的bin文件比较快,所以找到这个方式,关于keil如何生成bin文件可以看。关于正点原子的高速无线下载器可以去下载官方资料,里面有讲解,这里只是做个简单教程防止遗忘。

2023-12-12 14:15:43 759

原创 keil生成bin文件(通用型)

按照上面的图,第一步点到user配置,在第二步的地方添加编译后动作:fromelf --bin!L --output rtthread.bin,其中这个rtthread.bin就是生成的文件,由于没有路径,所以会生成到和工程目录同一路径,名字可以自己修改。有些时候需要在keil里面生成bin文件,但找到的各种方式五花八门,特别是要填写文件路径等没有通用性,搞个不同的工程就得改下,找到这个跟路径无关的代码,进行记录下。第三步就是在运行前面勾上,完成后点击OK,重新编译即可。

2023-12-12 14:06:47 691

原创 stm32f103使用hal库函数读写内部flash

在写数据的逻辑上是比较简单的,因为hal库将底层已经进行了封装,步骤就是解锁flash->擦除要写入的扇区->清除CR寄存器的PER位(这个本来应该在擦除里面的,基础库就是这样做的,但HAL库里面没写)->写入数据->上锁flash。

2023-12-07 17:32:39 1406

原创 GIT GUI使用

左上角为更改内容的展示列表,右上角是文件预览区域,可以看到更改了哪些内容,-就是去掉,+就是增加的代码。左下角位已提交的缓存的文件列表,表示还未push,右下角为提交日志,这个必填,不然无法提交。在点击commit前要填写提交信息,点击后就相当于保存到本地了,最后点击push推送到云端。sign off是在提交信息上添加自己的账户邮箱,这个不是必要操作,在空白处右键,找到GIT GUI here,上面填写仓库地址,下面填写本地地址。

2023-12-06 17:59:55 674

原创 RT-Thread Studio文件消失不见或被排除构建

不得不说RT-Thread Studio里面配置真多,今天我同事的电脑发现根本没有被画斜杠的文件夹,导致我想移植f1的写内部flash这个(可以看上一个文章)时候不能直接点击属性排除构建,然后在网上查找的时候也没怎么找到说法,所以那我就自己写个说明吧。在RT-Thread Studio里面是有过滤器这个东西的,就是会把没用的文件或者文件夹给过滤掉,默认我也不确定是不是开启的。如果找不到文件夹了,或者按理说在外面的文件夹里添加的文件会被自动更新到这个软件的,没有的话那就改下这个设置吧。

2023-12-05 21:41:12 644

原创 stm32f103使用RT-Thread组件fal读写内部flash

本次使用RT-Thread studio编写,使用为5.02完整版,目的是将内部flash进行分区,可以直接在内部flash存储数据。

2023-12-05 10:57:20 1144

原创 rt-thread studio中新建5.02版本报错

先吐槽一下,rt-thread studio出现BUG真多,好多时间都是在找BUG,但里面用好多控件还是挺好用的,真是又爱又恨,所以一般使用功能不多的话还是用keil多一点。创建5.02版本工程之后直接进行编译,直接会报下面这个错误:资源 路径 位置 类型 expected '=', ',', ';', 'asm' or '__attribute__' before 'void' board.c /rt1035.02/driver

2023-12-04 11:35:37 583

原创 rt-thread studio中新建5.0不能用

在使用RT-Thread studio创建新工程5.0版本的时候,结果发现新建完成之后程序不能正常运行,但是创建4.10版本的时候却能运行,那肯定是新版本出现了BUG。

2023-12-04 11:18:16 525

原创 stm32一种步进电机查表法驱动

对于stm32芯片来说,步进电机的驱动由于要在中断中不断计算下一次脉冲的时间而极其消耗算力,使用计算的方法对于芯片的算法消耗更高,特别是在f1这种算力比较低的芯片上,这时候使用查表法是一种比较靠谱的方式,这里只给出部分代码思路。当然使用查表法的缺点就是在算力够用的情况下相比计算会没有那么平滑,但是在使用更多电机的时候查表法表现更好,计算会由于算力不足出现卡顿的情况。

2023-12-01 15:54:17 660

原创 STM32f407掉电检测PVD功能

最近在做一个项目需要用到掉电检测,然后保存数据,发现stm自带有PVD功能,就拿来用一下做个记录吧。本文测试基于stm32f407板子。

2023-11-25 09:35:59 717

原创 RT_ASSERT断言中#号的作用

在嵌入式操作系统中经常会看到RT_ASSERT断言的存在,但在对这个断言分析的时候,遇到#EX这个符号,实在看不明白作用,于是只能上网找资料慢慢分析了。

2023-11-22 16:09:34 433

原创 FreeRTOS基础(四)动态任务创建

动态创建任务就是任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从 FreeRTOS 管理的堆中分配,我们将动态任务创建分为三步,第一就是将宏configSUPPORT_DYNAMIC_ALLOCATION 配置为 1 ,这个是动态创建线程的config配置,第二步是定义函数入口参数,第三步是编写任务函数。

2023-11-14 14:51:32 178

原创 FreeRTOS基础(三)FreeRTOSConfig.h文件详解

FreeRTOS 的配置基本是通过在 FreeRTOSConfig.h 中使用“#define”这样的语句来定义宏定义实现的。在 FreeRTOS 的官方 demo 中,每个工程都有一个 FreeRTOSConfig.h 文件,我们在使用的时候可以参考这个文件,甚至直接复制粘贴使用。在cubeMX生成的时候选择的配置其实也是更改FreeRTOSConfig.h文件。

2023-11-11 09:57:28 342

原创 FreeRTOS基础(二)cubeMX生成FreeRTOS

在cubeMX出现之前,移植操作系统一般都是手动移植的,但这个方法效率低,而且不容易查找错误,那么有了st公司的cubeMX之后,想要使用什么操作系统直接一键生成就好了,简单好用,所以一般情况均使用cubeMX直接生成操作系统。

2023-11-10 17:47:00 133

原创 FreeRTOS基础(一)FreeRTOS概念

实时操作系统全名为real time os,简称RTOS,强调的是实时性,其主要作用就是将单片机运行的时间分成一个一个的时间片,再根据调度器将时间片分成一个个任务,再将延时函数处理成将任务挂起,这样就不会占用单片机资源。

2023-11-09 17:17:26 257

原创 正点原子Linux点灯问题总结

进行LED点灯实验的时候按照教程写好程序,发现怎么也不亮,使用官方的例程也不会亮,最后发现是下载程序的位置应该是/dev/sdb1,不亮是下载到了/dev/sdb。

2023-10-17 09:27:53 123

原创 stm32 FOC从学习开发(九)FOC MATLAB仿真

在第七篇的时候在svpwm过程中计算出了三相的比较值,这个比较值最终是一个马鞍波形,但是最终到MOS管的是需要上管和下管相对的总共六相波形,当然在实际上有些驱动芯片是自带这个功能的,还有如果使用高级定时器生成六相波形的话也是可以自动生成的,但在MATLAB中还是需要处理一下的。

2023-09-07 17:25:58 1306

原创 stm32 FOC从学习开发(八)PID基础MATLAB仿真

PID算法是工业应用中最广泛算法之一,在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。PID算法已经有100多年历史,在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。PID算法:就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种常见的“保持稳定”控制算法。

2023-09-07 15:26:06 593

原创 stm32 FOC从学习开发(七)svpwm算法MATLAB仿真

本仿真模型基于之前所做的Clark变换与park变换,输入量是α、β、时间周期T和电压U,由于实际硬件中采用的定时器是168M,所要PWM频率为20Khz,所以这里时间周期T设置为了8400,也是为了容易算出CMP比较值,电压就使用了我经常用的24V,其实这两个参数随便改就可以了如果只是为了看仿真效果的话,仿真中使用的是常数模块,改成自己想要的值就可以了。

2023-09-05 09:41:18 889

原创 stm32 FOC从学习开发(六)基于均值零序分量注入的载波SVPWM算法

在进行学习svpwm算法的时候,在MATLAB的foc例程上发现了一种更简单的算法,不用区分分区,也不用复杂的公式就可以计算出马鞍波,这种简明的方法我却一直找不到理论出处,直到看到均值零序信号的时候。首先本人学习的本职确实不是这方面的,理解起来还是有些困难,特别涉及到这些算法的时候,有时候总想对应到其物理意义,但大多时候只是一个算法,没有物理意义。

2023-09-04 16:43:50 1320

原创 stm32 FOC从学习开发(五)svpwm算法(2)

SVPWM算法的实现方式主要包括参考电压矢量的扇区判断各个扇区非零矢量和零矢量作用时间的计算以及各个扇区矢量切换点的确定,最后使用一定频率的三角载波信号与各个扇区矢量切换点进行比较,从而可以产生变换器所需的PWM脉冲信号。

2023-09-02 17:57:32 1369

原创 stm32 FOC从学习开发(四)svpwm算法(1)

SPWM的全称是(Sinusoidal Pulse Width Modulation),即正弦波脉冲宽度调制,是一种比较成熟的目前广泛使用的一种PWM方法,其原理就是采用控制理论中的一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。

2023-09-02 16:34:08 2024

原创 stm32 FOC从学习开发(三)park变换与MATLAB仿真

在我们FOC控制的时候,经过了Clark变换我们成功让原来的120度坐标系变成了我们所熟悉的直角坐标系,并且减少了一维变量,但是新的变量还是非线性的,也就是正弦的,有没有办法把他们线性化呢?有,那就是park变换。

2023-08-31 11:32:53 1109

原创 MATLAB生成stm32程序

在学习PID的时候,突然看到这么一片文章,使用STM32MatTarget和stm32cube生成嵌入式算法代码,就直接去官网搜了一下,结果STM32MatTarget 4.4.2这个包已经不受官网支持了,但却发现了替代的东西,那就在这个基础上进行生成stm32代码吧。由于我手边没有带有USB资源stm32f4的板子,所以就没办法直接下载,在我修改GPIO为我自己板子呼吸灯的GPIO后,使用直接生成的.hex文件下载到板子中,程序正常运行,完成。

2023-08-29 15:52:28 835 1

原创 stm32 FOC从学习开发(二)Clark变换与MATLAB仿真

在我们FOC控制的时候,第一步就是采集两相电流,在理论中我们一般说采集三相电流,但在实际中运用最多的是采集两个电阻的相电流,因为根据基尔霍夫定律,第三相电流是可以根据另外两相电流算出来的。

2023-08-24 15:58:06 1495

原创 stm32 FOC从零学习开发(一)FOC概念

FOC是Field Oriented Control的缩写,FOC(field-oriented control)为磁场导向控制,又称为矢量控制(vector control),是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。FOC是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。

2023-08-24 11:12:25 3315

原创 rt-thread完整版printf函数的映射

这个函数就可以通过字符uart1查找到串口1的设备了,当然前提还是串口1进行初始化挂载到设备树上了。但这明显不是我想要的,我想要的是将不同的打印函数映射到不同的串口上面,rt_kprintf函数好说,只需要一步步去查看调用就能找到最终在那个串口进行打印的,但printf函数明显是调用的库函数,这个不太好查找。在使用rt-thread nano版本的时候,我们只使用了rt-thread的内核,所以串口函数都是自己写的,但在使用完整版的时候,串口是挂载在设备上面的,那么怎么将打印函数映射到自己想要的串口上呢。

2023-08-01 11:07:33 714

原创 stm32 keil宏定义的使用

在编写代码的时候经常会用到一些宏定义,使用宏定义可以使我们的代码更加规范,而且使用选择类型的宏定义还可以使我们编写出来的代码更小,也更利于程序的移植与修改。常用的一些宏定义有#define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif,还有一个找了好久才找到的defined,没错,这个前面没有加#。#define 定义一个预处理宏#undef 取消宏的定义#if 编译预处理中的条件命令,相当于C语法中的if语句。

2023-07-10 10:04:23 2022

原创 stm32存储float数据到内存

在使用内存存储数据的时候,有时候发现存储的数据不是整数,但内存里的数字都是二进制的文件,所以需要一种可以将float存储为二进制并且可以读出来的方法。

2023-07-08 17:42:03 816

原创 MDK keil警告解决合集

原因是变量可能不会被初始化而导致错误,将变量声明时赋予初始值即可。

2023-06-08 10:59:36 1011

原创 MDK keil5屏蔽警告方法

这个警告就是由于在打印的时候打印中文字符引起的,而类似的警告也会比较多,又不可能不使用中文打印,在找错误的时候就会比较麻烦,这时候就可以在源文件中加入编译器选项,#pragma diag_suppress 870,就可以禁止出现这个warning消息了。,如此,输出就干净了。在keil5中经常会出现一些警告,但这些警告有时候又是无关紧要的,比如warning: #870-D: invalid multibyte character sequence。

2023-05-29 18:19:00 1819 1

原创 rt-thread studio显示当前工程已损坏/当前设备名称为空

我今天新换了电脑,新安装了rt-thread studio后重新导入文件,点击下载的时候总是出现设备名为空,去网上找原因的时候有建议重装studio,结果重装了也还是这样,那就只能自己慢慢找原因了,也写下这篇文章,有遇到一样问题的可以参考下。在设置的debugger里面看到有一个device name,那就看下后面写的支持的设备名都是什么。点击打开网站发现原来写的是支持的架构,我使用的是M4的架构,那就写上cortex-M4,问题解决。

2023-05-05 14:15:08 284

原创 阿里云盘的几个搜索平台(自用)

经常用的几个阿里云搜索平台

2023-04-30 13:37:52 52889 2

原创 嵌入式STM32程序一些卡死的原因

嵌入式STM32程序卡死的原因

2023-03-30 22:57:32 4255

原创 RT-Thread Studio编译错误及解决方法

RT-Thread Studio编译错误及解决方法

2023-03-29 10:31:09 3072 2

PID的MATLAB simulink仿真

自己搭建的简单PID的仿真,为了便于理解PID的作用方式,具体内容可以看我的博客,MATLAB版本为2018a,低于此版本的小伙伴们请谨慎下载

2023-09-07

基于PID的focMATLAB仿真模型

本模型基于FOC进行的MATLAB simulink仿真分析,使用版本为2018a,其中包含了Clark变换与反变换、park变换与反变换,svpwm等仿真模型,都是自己一点一点搭建的,但是由于最终输出受电机参数、仿真步长等许多因素,最后pid出来的速度波形还是有些振荡,自己对于电机参数的熟悉也不够,只是以此来熟悉这个算法,就到此为止了这部分。

2023-09-05

基于载波的svpwm与基于空间矢量的svpwm MATLAB仿真

自己练习时写的基于载波的svpwm与基于空间矢量的svpwm MATLAB仿真,包括了Clark变换与反变换和park变换和反变换,对于学习foc的小伙伴应该有一定用处,仿真环境为2018a simulink,低于此版本的小伙伴们请谨慎下载,关于算法详情请看我的博客

2023-08-31

MATLAB生成stm32程序st的支持包

这是MATLAB生成stm32程序st的支持包,具体使用可以看我的博客文章

2023-08-29

matlab硬件支持模拟器f4芯片支持安装包

做MATLAB生成stm32代码的时候所要用到的安装包,可以去官网下载,也可以在这里直接用,详情可以看我的博客

2023-08-29

Clarke与park变换与反变换MATLAB模拟

Clarke与park变换与反变换MATLAB模拟,自己写的MATLAB仿真,作为FOC工程的一部分,使用MATLAB版本为2018a

2023-08-09

matlab 转换将Excel数据导出的一个自己做的应用

matlab 转换将Excel数据导出的一个自己做的应用,可以将Excel导入到程序中,然后处理里面的程序,又写了一个导出到txt文档的程序

2023-03-29

adc实验,用于在LCD模块上面显示ADC转换值以及换算成电压后 的电压值。

本实验通过STM32内部ADC1读取通道5(PA5)上面的电压,在LCD模块上面显示ADC转换值以及换算成电压后 的电压值

2019-01-04

空空如也

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

TA关注的人

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