ESP32使用CLion+IDF无痛起步指南

Espressif,乐鑫,是近年来崛起的优秀国产MCU品牌,它们的产品线比较狭窄,只包括MCU级别的产品,但是不得不说他们在嵌入式AI、嵌入式IoT以及无线技术方面确实给开发者提供了许许多多的的便利。ESP32早年从ESP8266起家的时候首先支持的Arduino的开发框架,然而在较深入和较复杂的开发之中这个框架的灵活度、易用性、可扩展性都展示出了许许多多的不足之处,所以笔者决定抛弃ESP-Arduino转而使用ESP-IDF进行开发,本文旨在探索一种合适笔者的开发环境。

Read more »

使用PMOS完成常用的电路保护

在如今的电路设计之中,无论是DC-DC开关电源还是LDO都有完善的反馈特性能够完成很好的压控设计目标,在一些场景之中为了防止反接常常使用一些物理防呆接口——但是俗话说的好:防呆不防傻,大力出奇迹。所以对于过高的电压、反接电源烧毁电路还是需要注意,这时候我们可以使用P沟道MOSFET非常轻松的完成这些电路,实现很好的效果。

Read more »

构建理想二极管组成ORing切换电路

在嵌入式系统和电路设计之中,我们经常会见到多路供电的状况,例如USB供电和系统内自带电池同时存在,例如DC-DC开关电源和USB直流供电同时存在,亦或者为了保证系统的可靠性使用多个相同供电结构组成的冗余电源(Redundant Power Supply)。这时候将多路电源的输入直接通过传输线相连显然是不明智的,这时候就要用到ORing电路。

Read more »

卡尔曼滤波器(Kalman Filter)深入推导与理解

——深入理解卡尔曼滤波器(1) 卡尔曼滤波器是一种高效的算法,用于线性动态系统中的状态估计和控制。它通过结合过程模型和测量数据,以递归方式最小化估计误差的方差。在存在噪声的系统中,卡尔曼滤波器能够提供最优的状态估计,广泛应用于信号处理、导航和控制系统等领域。大家总是觉得卡尔曼滤波器高端大气上档次,今天我们就来看看这是些什么东西!

Read more »

FTP协议详解与VSFTPD使用

自从闪存介质和带有文件传输功能的社交媒体发明以来,人们将日常工作中的文件传输方法寄托于二者,然而必须要指出的是:作为一名IT从业者和开发人员,这样的文件传输与管理策略是丑陋且愚钝的。FTP协议是一个广泛应用但鲜有人拥有完善了解的协议——即使是那些为了计算机网络原理期末考试通宵达旦的可怜本科生们也在面对FTP报文时表现出相当的无措和局促。然而无论是从事互联网WEB开发还是嵌入式Linux开发,全面而详细的了解FTP都是一件必要的准备工作。

Read more »

FATFS接口与移植详解——嵌入式FATFS[2]

在上一篇文章中我们已经明确了FATFS的基础概念和逻辑组织形式,那么现在就来到了实际调动代码完成功能和完善逻辑访问接口的部分了。非常幸运,FATFS官方提供了使用ANSI C编译的可移植的代码库,所以我们的任务就简化成了分析模块接口并且完成模块在具体工程之中的移植问题。

Read more »

FATFS详解——嵌入式FATFS[1]

经常从事嵌入式开发的同学们应当会频繁触碰到一个痛点:数据持久化(掉电存储),最常见的应用场景就是配置信息或者控制器参数的保存和读取——依赖于便写固件时一次性的将PID参数写死而造成的后续调参体验真的太糟糕了。我们首先需要分析FATFS底层的逻辑组织形式!

Read more »

版本控制神器 Git 使用方法[预警: 文章超长,可能502,多刷新]

当你不小心删除了某个工程的重要文件或者全部文件,你是否想象过后悔药的存在?当你与其他人一起开发/维护某一工程项目(甚至仅仅是完成本科课程作业)时你们是否在为了分工和进度争吵不断?当你来到GitHub时你是否完全无法使用除了CLONE之外的一切功能?Git将成为你最好的版本管理工具,而本文将较为粗浅的介绍这一工具的特性与使用方法。

Read more »

STM32 HAL库NVIC使用与中断原理

——STM32 HAL库开发系列<4>

本章主要设计NVIC,Nested Vector Interrupt Controller也就是嵌套向量中断控制器的使用与其原理解构,将会以一种通俗易懂的方式讲述什么是中断以及展示中断这一十分重要的功能在单片机嵌入式开发中的简单实用,最后将以一个按钮的驱动代码作为例子。

Read more »

关于在CLion环境中开发STM32无法加载CMake的BUG解决方案

解决了一个CLion+STM32CubeMX开发环境中不大不小的BUG,虽然无伤大雅,但是真的膈应人,本质就是工程文件中缺失了对于CMake的识别。

Read more »