自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (8)
  • 收藏
  • 关注

原创 大胆投资自己

只有习惯和坚持才能改变一个人的内在本质!今年目标:Keep Thinking--- 读《大胆投资自己》有感。

2024-03-17 18:55:16 441

原创 DAP-Link DIY复刻指南

DAP-Link是ARM开源的一个项目,主要用于代码下载以及调试,支持SWD和JTAG调试接口,对于开发嵌入式的同学相信都或多或少有所耳闻。除了DAP-Link之外还有很多同类型的调试器,如ST-LinkJ-Link,但是这些都是不开源的,无法复刻或进行二次开发。但DAP-Link不同,完全开源,不用担心侵权问题,且随着开源社区大家的共同努力,DAP-Link经过了不断的迭代,先如今已取代ARM之前推出的CMSIS-DAP开源项目。

2024-03-04 00:40:48 1192

原创 谈一谈直流无刷电机 FOC 不同电流采样方式之间的差别

关于直流无刷电机采用FOC算法进行控制,必须需要拿到电机的三相电流进行反馈计算。高端采样低端采样相间采样三种采样方式如下图所示:三种采样方式各自具备优缺点,其中由于高端采样方案成本较高,且软硬件设计均较为复杂,故高端采样应用最少。接下来我们详细讨论相间采用以及低端采用方案。以上便是关于直流无刷电机FOC控制中不同电流采样方式之间的差别了,每种方式各有优劣,实际项目开发中,应根据项目的实际情况进行方案选择。

2024-02-25 18:55:58 1362

原创 直流无刷电机FOC控制原语

在之前的写的那几篇文章中我们通过数学以及物理推导,详细阐述了FOC的理论以及实现过程,基本原理简单但内容较为深入;而在此篇博文中,我将从另外一个角度,站在更上层的视角分享FOC的实现原理,我将此篇文章称之为《直流无刷电机FOC控制原语》,其目的是让更多人可以快速理解什么是FOC控制,FOC控制是如何实现的,读完此篇文章,你将如同拿到了一张沙漠里的地图,帮助你快速建立起FOC控制的一个完整概念,让你学习FOC过程中不再迷失方向!

2024-01-21 18:24:06 1143

原创 一文搞懂MCU RAM的分配

本文结合实验,详细阐述嵌入式MCU编程过程中的flash和ram分配问题,讲述全局变量、局部变量、全局常量、局部常量ram分配那你还不清楚的事!

2024-01-07 17:08:56 1643

原创 Linux进程间通讯 -- 管道

在 Linux 中每个进程都具备独立的进程地址空间,对每个进程的独立地址空间进行划分,在0G - 3G部分被划分为用户空间,而3G - 4G部分被划分为内核地址空间。在进行地址映射的时候,每个进程的用户空间在实际物理空间上将被映射到多个地址空间,而多个进程的内核空间将会被被映射到同一块区域,因此多个进程之间具备相同的内核地址空间,通过此共同的内核地址空间实现线程间数据交互即为进程间通讯,也即IPC。当管道中数据被写满时,再次往管道内写入数据会进入阻塞等待状态,直至有数据从管道的读端被读走。

2024-01-07 14:19:13 870

原创 Linux应用开发环境(工具链)配置高级技巧

如何进行嵌入式 Linux 应用开发?进行嵌入式 Linux 应用开发第一步当然就是配置交叉编译工具链,编译程序了!不过嵌入式 Linux 开发不同于嵌入式 MCU 开发,没有集成化的IDE,没有集成化的开发环境,需要自己配置交叉编译工具链。但是当工具链下载好之后,下一次如何快速导入配置;或者当你的电脑上工具链有好几个的时候,如何选择加载哪一个工具链配置呢?本文分享一个关于 Linux 工具链配置的快捷技巧,方便你一键加载相关配置,让你发现 Linux 其实也可以很 Easy!

2023-12-10 23:28:11 133

原创 一篇文章看懂zlog日志使用

zlog是一个高可靠性、高性能、线程安全、灵活、概念清晰的。正因为zlog是一个日志函数库,故zlog没有独立的进程进行维护,需依赖实际调用zlog的进程,故需留意进程崩溃时的日志丢失情况。但也因为zlog是一个日志函数库,故其具有简单易用的特点,虽然简单但能满足普通日志记录的需求。因此这么看下来,对于简单的日志记录,zlog将会是不错的选择,如果不需要过大复杂的功能,可以理解为时 rsyslog + logrotate的基础版了。

2023-12-10 23:16:39 572

原创 直流无刷电机(BLDC)六步换相驱动原理

直流无刷电机相对直流有刷电机具备效率更高,所需维护更少,寿命更长等诸多特点被广泛应用。六步换相控制FOC矢量控制直接力矩控制多种控制方式中,六步换相控制相对其他控制较为简单,也适合作为直流无刷电机的控制的入门学习方案。关于六步换相控制,网上的资料很多,但基本上都是基于厂商提供了对应电机的换相表直接根据换向表内容进行换向控制,这样是实现起来简单,但是对于深层次的原理理解将不够,本文完整的阐述。以上便是针对直流无刷电机的六步换向控制啦,欢迎大家共同讨论。创作不易,转载请注明出处!

2023-11-05 18:45:49 5257

原创 rt_hw_stack_init 线程栈初始化参数分析

RT-Thread 在线程初始化的代码内有一段初始化线程堆栈的代码,在调用 `rt_hw_stack_init()` 初始化堆栈的时候传入线程栈起始地址进行了 `-sizeof(rt-ubase_t)` 操作,而在 `rt_hw_stack_init()` 函数内又进行 `stk = stack_addr + sizeof(rt_uint32_t);` 将其给加了回去,这操作的意义是什么呢?还是说是历史遗留问题?

2023-08-13 18:27:57 531 3

原创 【嵌入式】基于FATFS/Littlefs文件系统的日志框架实现

本文主要分享基于文件系统上的简易日志系统的设计。网上也有一些开源的日志框架,如 `Log4j`,不过大都是基于 java / c ++ 实现的,虽然功能比较全面,但比较繁杂,且也难以移植应用于嵌入式开发中。而在嵌入式开发中,可能也受限于资源限制,并没有发现不错的基于文件系统的开源日志框架(至少博主目前没有发现,有的话欢迎大家评论区讨论 :D)

2023-07-21 22:16:44 902

原创 ESP32 IDF开发调试奇技淫巧

主要分享ESP32 IDF开发过程中的一些重要调试经验及方法,涉及系统剩余堆大小查询、线程栈剩余大小查询、CPU占用率查询、版本控制、Backtrace奔溃分析等

2023-07-21 21:00:55 673

转载 文件操作详解

本章介绍 C 语言如何操作文件。

2023-07-12 23:59:37 135

原创 FAT32文件系统详解

在上一篇文章FAT文件系统详解中,我们已经对FAT文件系统有了一个详细的介绍,但由于FAT文件系统由历史发展,存在FAT12/16/32三种系统,在上一篇文章中采用的是FAT16系统作为实例进行的分析,而FAT32系统存在些许差异,且FAT32文件系统在当前应用广泛,因此特补充此篇博文,完善FAT32的示例分析。

2023-06-04 17:32:09 1733

原创 FATFS文件系统详解

随着硬盘/flash容量不断增大,存储的数据也越来越多,早期单一的对应地址存放对应数据的方案已经无法满足我们的需求,因此一群大佬们便开始设计文件系统这样一个东西,用来管理硬盘/flash上的数据信息。本文主要分享关于FAT文件系统的详细设计。通过对FAT文件系统组成介绍,字段分析并采用新增文件实践分析的方式,详细阐述FAT文件系统的工作原理!

2023-06-02 00:01:34 2647 3

原创 ESP32-IDF MQTT连接aws亚马逊云

分享使用ESP32 IDF开发方案连接AWS MQTT服务器的简单应用了,重点需要注意的是初始化mqtt_cfg结构体的时候对应的参数配置,以及需要增加client_id参数才能连接成功,原本的示例 demo 里面没有此项内容,这可能是大家连接不上的一个重要原因。创作不易,转载请注明出处!ESP32 AT指令连接AWS亚马逊云(点击跳转!!!物联网ESP32专栏(点击跳转!!!爱出名的狗腿子(点击跳转)爱出名的狗腿子(点击跳转)

2023-05-27 14:33:15 1526

原创 FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统

FATFS(File Allocation Table File System)是一个轻量级的文件系统,被广泛应用于嵌入式系统和小型存储设备中。它由Chan提供,并在嵌入式系统中得到了广泛的应用和支持。FatFS官网地址为:[FatFs - Generic FAT Filesystem Module](http://elm-chan.org/fsw/ff/00index_e.html)。本文主要分享关于 `FatFS` 文件系统在SD卡/SD nand上的移植使用。

2023-05-20 15:13:33 732

原创 【五一创作】ESP32 ipref 吞吐量测试

ESP32 作为一款当前市场占有率最高的物联网芯片之一,被应用在绝大多数需要使用到 WiFi 功能的物联网产品上。作为一款产品,产品的稳定性和高可靠性是一个优秀的产品必须重点关注的一个点,那么关于ESP32 这款IC的 WiFi 性能在我们的产品上具体怎么样我们又有什么样的办法?有怎样的指标来测试,来衡量呢?本文将主要分享,关于如何配置 `ESP32` 使用 `ipref` 对其进行 `WiFi` 网络信号测试,废话不多说,我们直接开始吧!

2023-05-03 23:42:16 1350 2

原创 【五一创作】VimPlug插件配置

分享关于Linux Vim编辑器优化配置,采用Vimplus脚本优化vim编辑器,打造超好用vim编辑器

2023-05-01 15:27:09 979

原创 stm32 CubeMx 实现SD卡/sd nand FATFS读写测试

本文将主要分享关于使用 CubeMx 配置 stm32 的工程,通过SDIO总线完成 SD卡/SD nand 的读写,并配置FATFS,采用文件操作实现对 SD卡/SD nand 的读写操作;此外还将分享博主在调试过程中遇到的一些问题,比如CubeMx自动生成的驱动存在的bug等,以及分享关于驱动部分的代码分析!

2023-04-29 00:09:32 997 1

原创 ESP32 OTA升级之https ota详解

本文以 ESP32 官方例程native_ota_example为例,详细阐述如何采用https实现esp32的ota升级。第一章节,为本文的前言部分,对文章内容进行大体概述;第二章节,主要描述了如何在本地将demo例程跑起来,并附带了关于使用demo例程中遇到的相关报错的具体解决措施;第三章节,主要描述了ESP32的 flash 扇区布局;第四章节,主要描述了OTA下载的镜像文件的头部数据结构,并对其进行详细分析,镜像文件的头部与OTA息息相关;第五、六章节详细描述了OTA升级过程中应用程序的状态切换逻辑

2023-04-10 23:02:52 3237

原创 ESP32 分区表

ESP32 针对 flash 进行划分,划分为不同的区域用作不同的功能,并在flash的 0x8000 位置处烧写了一张分区表用来描述分区信息。分区表可以根据自己的需要进行配置,每一个分区都有其特定的作用,可根据自己的需求进行配置以及修改,下述以官方例程里面的分区表进行描述。

2023-04-10 21:46:40 1313

原创 ESP32 OTA升级之HTTP OTA

本文主要描述如何采用http通讯方案获取升级固件完成esp32的ota升级。由于我们采用http进行升级,在调试阶段,我们可以采用 `python` 先建立一个简单的本地 http 服务器以方便我们进行调试

2023-04-05 12:21:42 1723 1

原创 ESP-IDF+PowerShell/Vscode windows ESP32开发环境搭建

在上一篇博客,我分享了如何在 linux 开发环境,搭建esp32的开发环境,虽然 windows 环境差异不是特别大,但是鉴于有部分同学缺乏这块经验,因此特针编写此博客,分享并记录在 windows 环境下如何搭建esp32的 IDF 开发环境

2023-03-27 23:50:12 2437

原创 ESP32 bin文件生成及多个bin文件合并指南

ESP32 IDF如何实现bin文件的生成?以及如何将生成的多个bin文件进行合并生成一个bin文件呢?本文将详细介绍,在我们使用 ESP-IDF 开发完对应工程软件之后的一系列生成、打包操作,包括 bin文件的生成 以及相应的 bin文件合并 等操作。

2023-03-17 23:13:15 4599 11

原创 rt-thread SDIO驱动框架分析(SD卡驱动\SD Nand驱动)

RT-Thread是一款国产化的嵌入式操作系统,目前在嵌入式领域得到广泛应用,其强大的扩展功能以及通用的外设驱动框架备受大家追捧。RT-Thread 区别于其他操作系统,如FreeRTOS,的一大重要特征是,RT-Thread 中引入了设备驱动框架,并且针对绝大多数外设基本上都已完成对应的设备驱动框架编写。关于基本的外设驱动,其官网上基本也都有部分描述,但是关于SDIO设备驱动目前为止还没有相关文档说明,因此本文笔者将根据自己的调试使用经验,与大家分享下rtthread的通用SDIO设备驱动的实现。

2023-03-04 17:23:54 1184

原创 数据结构与算法:计算器实现(Python)

本文主要采用数据结构与算法的知识,采用Python语言,完成计算器的实现。其主要实现思路是:1. 将人类易于理解的中缀表达式转化为计算机易于理解的后缀表达式;2. 采用后缀表达式,栈操作实现算式运算

2023-02-19 15:05:54 700

原创 ESP-IDF + Vscode ESP32 开发环境搭建以及开发入门

本文采用的方法称之为:ESP-IDF + Vscode开发方法,此方法成功的将 `ESP-IDF` 工具与编译工具分离,因此可以单独维护,关于ESP-IDF的版本切换可直接使用git切换即可,十分的方便,同时编辑器还是采用Vscode,编写代码还是很方便此外,本文除了阐述如何搭建开发环境之外,还记载了博主关于ESP32开发过程中的相关笔记,主要介绍了如何采用ESP32的开发风格开始搭建我们自己的工程进行开发。

2023-02-14 22:20:30 7869 7

原创 SD Nand 与 SD卡 SDIO模式应用流程

本文主要梳理 SD nand / SD卡 以下流程:上电识别、通讯速率 / 总线宽度修改、块擦除、单块读写、多块读写。 本文重点在于梳理以上关键操作的基础流程,不过多叙述数据结构、软件框架设计逻辑。

2023-01-07 17:16:13 1441

原创 SD nand与SD卡 SPI模式驱动

关于采用SPI接口模式完成于SD nand和SD卡的通讯,网上也有相关资料,但描述均不是很清楚或完整,因此特整理此博客,以作记录及分享。本博文以创世 CSNPGCR01-AOW 这颗IC为例,着重描述如何通过SPI接口完成SD nand(SD卡)的读写驱动。

2022-12-18 23:47:27 1439 8

原创 数据结构与算法之查找算法

本文主要分享数据结构与算法中的查找算法,如 二分查找(折半查找)、插值查找(按比例查找)、斐波那契查找(黄金分割法查找)、线性索引查找

2022-11-27 23:33:50 350

原创 ESP32 AT指令连接AWS亚马逊云

本文旨在介绍如何使用 ESP32 的 AT 指令模式连接AWS亚马逊云,由于连接AWS亚马逊云是需要双向认证的,相比其他的云平台,如阿里云、百度云、腾讯云较为复杂,因此特编写此博客已做记录及分享

2022-11-09 00:04:16 1888 2

原创 直流无刷电机FOC控制算法 理论到实践 —— 实践

关于直流无刷电机FOC控制算法的理论章节,本人已经在前两章进行过详细说明,大家可以自行进行阅读,请务必了解过理论之后再来学习如何具体进行实现。直流无刷电机FOC控制算法 理论到实践 —— 理论(一)直流无刷电机FOC控制算法 理论到实践 —— 理论(二)本章节主要讨论采用MCU微控制器如何具体实现直流无刷电机的FOC控制。

2022-09-25 20:31:56 12937 25

原创 ESP32 AT指令模式连接百度云天工物接入

​ ESP32是乐鑫公司的一款 WiFi+蓝牙双模组,通过使用ESP32可以轻松快速的将设备接入物联网云平台。​ ESP32模组支持 IDF 开发和 AT 指令开发两种方式。​IDF开发,也即直接片上编程进行二次开发,这种方式开发和普通的MCU开发十分相似,底层基于FreeRTOS实时操作系统+LwIP协议栈;​AT指令开发,这种方式开发更加简单,官方提供了一个AT指令固件,将此固件烧录在ESP32中,即可通过串口控制ESP32完成一系列的配网联网功能,不用管内部细节如何实现。

2022-09-25 17:31:39 2736 2

原创 数据结构与算法:判断单链表中是否存在环

单链表结构如下图所示:单链表就和串葫芦一样,一个接一个,那么针对一批次串葫芦,如何检查确认此串葫芦是否有劣质品和残次品呢?串葫芦中的残次品即在单链表中出现了内部环,如下图所示:本博文针对单链表中存在的此类问题,通过阐述两种方案来实现对单链表中是否存在环进行检查。

2022-09-04 18:52:53 704

原创 直流无刷电机FOC控制算法 理论到实践 —— 理论(二)

在上一章节,我们对于FOC大体有了一个介绍,本博文将详细描述有关Clark变化、Park变化、反Park变化以及SVPWM的理论实现原理,也即相关数学运算实现。

2022-08-21 19:20:54 10576 22

原创 直流无刷电机FOC控制算法 理论到实践 —— 理论(一)

对于直流无刷电机的控制,采用六步换相确实可以驱动电机运转,但是如果从原理上深入理解一下便可以发现其缺陷,六步换相技术通过传感器检测(通常为霍尔)当前转子磁场位置,之后控制三相输出产生合成磁场,通过此合成磁场吸引转子磁场转动,从而实现电机的驱动。此方法的缺点是:由于只能产生六种固定的合成磁场,转子磁场所处位置不同,所受磁力不一致,因此此方法的缺点便是对于电机力矩控制不稳定(在电机转速较低时更加明显),效率低(磁场产生的吸引力不能成90°完全做功) 针对六步换向存在的这些缺陷,伟大的前辈们便思考出了FOC

2022-08-21 16:22:17 22197 2

原创 日志系统-EasyLog移植与分析

此日志系统具有以下特点:- log输出等级可配置- 不同log等级可采用不同颜色输出- 使用简单- 格式通用,可打印log文件信息- 可支持时间戳输出针对此 log 进行优化,可使用在嵌入式mcu平台,是一种不错的 log 输出方式此 log 中包含一些关于 c 语言的一些冷门的重要知识,特再次作记录说明~!

2022-08-20 15:16:03 1625

原创 代码自动初始化

初始化代码如何做到自动化调用?在我们开发程序过程中,往往需要对 bsp 部分进行外设配置,以及一些模块、参数进行初始化将各个部分的初始化代码分别封装成一个单独的函数,然后再main函数刚开始的地方进行调用已实现初始化;这种方法比较简单、常用,亦能解决问题,但是此类写法在一些方面仍然存在不足所有初始化均需要在main函数内调用,不能做到彻底解耦框架设计不友好,部分非业务部分初始化,如软件框架类的初始化,往往不希望还需要业务在main函数内调用初始化等…那是否有比较完美的方式来解决此问题呢?..........

2022-08-02 23:00:11 1364

原创 一文看懂WS2812的呼吸灯实现

本文将向大家介绍如何使用PWM+DMA的方式实现WS12812的驱动以及如何采用普通IO翻转模式驱动WS2812

2022-07-06 16:46:10 25888 11

SD V2.0协议 SD Specifications Part 1 Physical Layer Simplified Spe

SD V2.0协议文档 SD Specifications Part 1 Physical Layer Simplified Specification Version 2.00 September 25, 2006

2022-12-18

GD32F4xx USB cdc host与移远EC20 4G模块usb通讯代码

GD32F4xx USB cdc host与移远EC20 4G模块usb通讯代码 简单修改亦可以支持与simcom的4G模块通讯

2022-03-29

GD32F4xx USB cdc host驱动demo

GD32F4xx USB cdc host驱动demo,可以直接在450的开发板上跑

2022-03-29

M3U8 1.4.7 0903.zip

M3U8批量下载器 V1.4.7版本

2021-10-06

Fiddler.zip

Fiddler抓包软件,解压后运行Fildder.exe会自动更新至最新版本

2021-10-06

stm32配置组合设备(HID+CDC)

使用stm32配置usb,配置HID+CDC组合设备,详细介绍可以查看本人博客,本实验基于stm32f107+CubeMx+Keil 实现,其他组合设备也可依照同样的思路搭建

2020-12-08

stm32 USB HID多点触摸屏上报安卓触摸信号

使用stm32的usb,配置成HID模式,主动上报数据,模拟手指触摸,这是两个手指的,多个手指的修改下对应的HID描述符就好了

2020-10-30

电子秤HX711AD模块资料包.zip

使用HX711模块完成电子秤的设计相关参考资料,其中包含了其原理的讲解说明以及模块如何使用,还附带有模块的通讯程序,有需要的伙伴可以下载自行查看,在使用此模块之前肯定需要先弄懂其原理,因此个人认为仔细阅读此资料十分有必要

2020-04-12

STM32驱动BH1750环境光强度传感器(GY302模块)完整工程.zip

使用STM32F1系类单片机驱动BH1750(GY302)光照强度传感器的实验完整工程,下载直接可用,stm32其他高系列单片机也可使用

2020-02-07

空空如也

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

TA关注的人

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