- 博客(101)
- 资源 (23)
- 收藏
- 关注
原创 嵌入式学习(27)-PID
PID控制算法即比例、积分、微分控制算法。PID控制分为两种:模拟PID和数字PID,前者处理的是连续信号,后者处理的是离散信号。因为单片机只能处理离散信号,本文主要谈后者。对于后者,又分为两种常用的算法即增量式数字PID和位置式数字PID,其中增量式用的更多,所以本文以增量式数字PID为例。PID控制的数学原理比较复杂,限于作者水平,大家可以点击这里进一步了解其控制原理。另外,根据实际控制需求,PID控制算法不一定三个环节都要用,一般常用的还有PI控制、PD控制。
2025-02-07 09:48:43
116
原创 嵌入式学习(26)-STM32F407 Hal库 BootLoader-APP
上篇文章讲到Bootloader的升级模式需要两个工程文件,一个为BootLoader工程,一个为APP工程;这篇文章就描述APP工程。
2025-02-07 09:44:18
615
原创 项目实战(10)-USB转多协议串口通信V3.0
1)项目背景是在实际应用中需要多种串口调试工具,携带起来也不太方便就做了这款USB转多协议串口通信工具板。前面调试了V1.0和V2.0的版本,V3.0是个稳定的版本开放给大家使用。2)板子集成了一个USB转4串口的芯片CH344Q,该芯片为 480Mbps 高速 USB 设备接口,支持通讯波特率 1200bps~6Mbps。无需额外的软件,电路板焊接好装上驱动软件就可以使用。
2025-02-04 19:58:43
270
原创 项目实战(9)-13.56MHz射频卡阅读器
13.56MHz射频卡阅读器主要由STM32处理器、OLED显示模块、射频卡识读模块、指示灯、矩阵按键输入、串口转USB电路等组成;为了保证掉电数据保存和节约成本,ID号的存储采用的是STM32的片上Flash。上电后先从Flash里面读取已保存ID卡的芯片,按下注册按键录入ID信息,第二次注册的时候就会报错,提示信息已录入;再按下识读按键进行对比测试。具有一件擦除功能,还预留了一个用户自定义按键,提供源码方便用户二次开发。13.56MHz射频卡阅读器可广泛应用于各类门禁识别中。
2025-02-04 19:47:44
717
原创 硬件电路(6)-可控硅开关电路
可控硅(Silicon Controlled Rectifier) 简称SCR,是一种大功率电器元件,也称晶闸管。它具有体积小、效率高、寿命长等优点。在自动控制系统中,可作为大功率驱动器件,实现用小功率控件控制大功率设备。它在交直流电机调速系统、调功系统及随动系统中得到了广泛的应用。可控硅分单向可控硅和双向可控硅两种。双向可控硅也叫三端双向可控硅,简称TRIAC。双向可控硅在结构上相当于两个单向可控硅反向连接,这种可控硅具有双向导通功能。其通断状态由控制极G决定。
2025-01-23 15:07:56
1456
原创 硬件电路(5)-压敏电阻
压敏电阻,顾名思义,对电压很敏感的电阻;中文这个“敏感”对应到电路中,应该就是一个非线性的变化:当电压达到一定的数值的时候,器件的阻抗呈现出剧烈的变化,这个剧烈的变化应该是量级上的。我们之所以会需要这种特性的电阻,肯定是电气设备中会遇到这样的源,需要这样的响应;反过来说,如果没有这样的响应,电路中的其他相邻或者相关器件就会出问题。当加在压敏电阻上的电压低于它的阈值时,流过它的电流极小,它相当于一个阻值无穷大的电阻。也就是说,当加在它上面的电压低于其阈值时,它相当于一个断开状态的开关。
2025-01-23 15:03:16
789
原创 嵌入式学习(25)-STM32F407 Hal库 BootLoader
BootLoader就是单片机启动时候运行的一段小程序,这段程序负责单片机固件的更新,也就是单片机选择性的自己给自己下程序。可以更新,也可以不更新,更新的话,BootLoader更新完程序后,跳转到新程序运行;不更新的话,BootLoader直接跳转到原来的程序去运行BootLoader更新完程序后并不擦除自己,下次启动后依然先运行BootLoader程序,又可以选择性的更新或者不更新程序,所以BootLoader就是用来管理单片机程序的更新。
2025-01-22 10:40:55
364
原创 硬件电路(4)-步进电机驱动
DRV8824 可为打印机、扫描仪以及其他自动化设备应 用提供集成型电机驱动器解决方案。此器件具有两个 H 桥驱动器和一个微步进分度器,并且专门用来驱动一个 双极步进电机。输出驱动器块包含被配置为全 H 桥的 N 沟道功率 MOSFET,以驱动电机绕组。DRV8824 能够从每个输出驱动高达 1.6A 的电流(在 24V 和 25°C 下,具有适当的散热)。一个简单的步进/方向接口可轻松连接到控制器电路。模式引脚可实现全步进到 1/32 步进模式的电机配置。
2025-01-22 10:03:49
381
原创 嵌入式学习(24)-STM32F407 Hal库IAP升级
第二部分代码可以使用第一部分代码 IAP功能烧入,也可以和第一部分代码一起 烧入,以后需要程序更新 时 再通过第一部分 IAP代码更新。我们将第一个项目代码称之为Bootloader程序,第二个项目代码称之为 APP程序,他们存放在 STM32F407 FLASH的不同地址范围,一般从最低地址区开始存放 Bootloader紧跟其后的就是 APP程序(注意,如果 FLASH容量足够,是可以设计很多 APP程序的。通常 实现 IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写。
2025-01-21 15:07:01
350
原创 嵌入式学习(23)-STM32F407 Hal库U盘读写
目前如果要实现USB的存储设备的读写,大体分三步走:1、判断是否有U盘;2、挂在U盘;3、读写文件。
2025-01-21 14:48:38
667
原创 硬件电路(3)-PT100温度采集电路
PT100是铂热电阻,它的阻值会随着温度的变化而改变。PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。它的工作原理:当PT100在0摄氏度的时候它的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。PT100温度和电阻的关系如下:R(PT100)=100R+0.3851T。通过三线制PT100的连接方式,实现了PT100的引线电阻补偿,与引线的材质长短粗细均无关;通过引入零点电阻实现了输出的零点温度补偿。
2025-01-06 13:33:52
2488
原创 嵌入式学习(22)-阿里云物模型透传-下发控制指令
在之前的文章里描述了如何将单片机采集到的数据通过透传上传的阿里云服务器,本篇文章主要介绍阿里云服务器通过透传下发指令控制单片机设备。
2025-01-06 13:20:30
388
原创 嵌入式学习(20)-STM32的ID号读取
在STM32的全系列MCU中均有一个96位的唯一设备标识符。在ST的相关资料中,对其功能的描述有3各方面:用作序列号(例如 USB 字符串序列号或其它终端应用程序)在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性激活安全自举过程等在资料中对其特性的描述是:96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。
2024-12-29 18:54:16
595
原创 嵌入式学习(19)-STM32F407-EEPROM 小数的写入与读取
嵌入式应用中有时需要保存一些参数,EEPROM就是一种方法;保存的参数遇到小数的情况,这时候如何便捷的实现小数的保存?下面介绍一种实现方式。
2024-12-11 11:01:06
435
原创 嵌入式学习(18)-stm32F407串口接收空闲中断+DMA
在一些一次性接收大批量数据的引用场合,如果使用接收中断会频繁的进入接收中断影响代码的运行效率。为了解决这个问题可以使用串口的空闲中断+DMA实现。
2024-12-11 10:47:32
1112
原创 嵌入式学习(17)-stm32F407串口使用注意事项
在网上也找了一些资料供参考“STM32F4的串口RX引脚不能被设置为输入是因为串口的接收(RX)功能是由硬件电路实现的,无法通过软件配置来控制。串口接收功能需要通过外部硬件电路来检测接收数据,然后将接收到的数据送入串口接收缓冲区。
2024-12-07 18:56:38
357
原创 项目实战(8)-便携式心率血氧检测仪
便携式心率血氧检测仪使用了一款医疗级别的传感器MAX30102;MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器的模块(芯片)。它集成了一个660nm红光LED、880nm红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路。可通过软件关断模块,待机电流为零,实现电源始终维持供电状态,可运用于低功耗产品中。便携式心率血氧检测仪包含充电管理电路,支持锂电池充电,方便携带;板子上有充电指示灯和满电指示灯,方便用户冲满电后及时断掉电源。
2024-12-03 14:36:47
838
原创 项目实战(7)-便携式红外测温仪(额温枪)
便携式红外测温仪使用了一款医疗级别的测温模块MLX90614;芯片在 -40…125 ˚C 环境温度及- 物体温度范围内进行出厂校准。芯片计算出的温度是感应器视角范围内所有物体的平均温度. MLX90614 在室温范围内提供的标准精度为±0.5ºC。便携式红外测温仪包含充电管理电路,支持锂电池充电,方便携带;板子上有充电指示灯和满电指示灯,方便用户冲满电后及时断掉电源。便携式红外测温仪有一块0.96寸的OLED显示屏,可以显示测温仪的电量和测试温度。
2024-12-03 14:28:24
223
原创 嵌入式学习(13)-塔石TAS-LAN-476串口服务器
TAS-LAN-476是一款实现物理串口转物理网口的设备,TAS-LAN-476 是工业级数据终端产品,该产品以以太网的方式为工业用户提供数据传输通道。设备软件功能完善,覆盖绝大多数常规应用场景,用户只需通过简单的设置,即可实现串口到网口的双向数据透明传输。并且支持自定义注册包、心跳包、DHCP 动态 IP 地址、DNS 域名解析、底层协议心跳包和网络保活等功能。项目中是将TAS-LAN-476作为一个TCP客户端,参数的配置可以通过串口或者网口的方式,文档描述简单的网口测试配置过程。
2024-11-20 08:09:45
1289
原创 硬件电路(2)-接地电路
从EMS(电磁抗扰度)角度出发,该电容在确保PE与大地连接的基础上,旨在降低可能存在的、以大地电位作为参考的高频干扰信号对电路产生的影响,从而达到抑制电路与干扰源之间瞬间共模电压差的目的。从EMI角度,电容形成了高频路径,电路板内部产生的高频干扰会经电容流入机壳进入大地,避免了高频干扰形成的天线辐射。另一种情况,假设机壳没有可靠接大地(如没有地线,接地棒环境干燥),则外壳电势可能不稳定或有静电,如果电路板直接接外壳,就会打坏电路板芯片,加入电容,能把低频高压、静电等隔离起来,保护电路板。
2024-11-14 20:36:28
744
原创 嵌入式学习(11)-WS2812灯珠-WS2812FX库
WS2812FX是一个专为Arduino和ESP8266微控制器设计的LED灯光效果库,支持WS2811/WS2812(包括NeoPixels)系列可编程LED。这个开源项目拥有超过55种预设的灯光效果,旨在作为Adafruit NeoPixel库的增强替代品。它提供易于使用的界面,允许用户在运行时动态控制速度、亮度,并且支持声音同步功能。该项目主要采用C++编程语言进行开发。
2024-11-08 15:50:55
847
原创 嵌入式学习(11)-WS2812灯珠
下面显示了四个WS2812通过数据性级联的方式。在串行通讯中使用不同高低电平脉冲表示数据0,1编码。WS2812的级联控制协议非常简单。通过一根信号线就可以进行串行异步信号发送。使用GPIO模拟时序时:GPIO的驱动频率大约是1MHz。
2024-11-08 14:19:51
289
原创 嵌入式学习(9)-EventOS 事件驱动管理
EventOS,是一个面向单片机、事件驱动的嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。EventOS的主要特性列举如下:(1)事件总线为核心组件,灵活易用,是进行线程(状态机)间同步或者通信的主要手段,也是对EventOS分布式特性和跨平台开发进行支持的唯一手段。事件支持广播发送,或者发布-订阅机制两种方式(二选一)。(2)全局事件队列,摒弃每个线程(状态机)拥有自己的事件队列的方式,只有一个全局事件队列,极限压缩对RAM的占用。
2024-11-08 10:04:55
726
原创 嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(四)
首先新建两个用户文件,将Demo例程中main函数中的部分测试代码复制到User.c里面,在头文件里面定义一些函数,编写相关的时序测试代码。第三步在工程的应用层添加C源文件和头文件。粘贴替换目标文件中的配置文件。测试了浮点数和字符串的读写。
2024-11-04 09:38:25
346
原创 嵌入式学习(8)-Bin/Hex文件烧录
软件名称:STM32 ST-LINK Utility方式一:官网链接方式三:百度网盘:STM32 ST-LINK Utility v4.6.0.zip链接:https://pan.baidu.com/s/11QfHEsSnfc8w8PS7fGUHuA提取码:z3yb。
2024-11-04 09:37:23
1003
原创 嵌入式学习(7)-RTC时钟DS3231
DS3231是一款高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。DS3231提供两个可编程日历闹钟和一路可编程方波输出。DS3231与单片机通过I2C双向串行总线传输地址与数据。
2024-10-30 07:36:20
1041
原创 嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(二)
由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所带来的风险。注:Demo工程的代码是基于操作系统的,项目中是裸机所以需要根据提供的Demo例程移植裸机代码。移植的过程也是这三步走。第一部分:例程中SPI的一部分初始化内容是在msp.c回调函数中实现的。
2024-10-29 08:29:08
433
原创 嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(一)
FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。FlashDB 提供了多样化的数据存储方案,不仅资源占用小,并且存储容量大,非常适合用于物联网产品。时序数据库 :存储动态产生的结构化数据:如 温湿度传感器采集的环境监测信息,智能手环实时记录的人体健康信息等;键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。
2024-10-29 08:21:35
610
原创 嵌入式学习(4)-塔石TAS-LTE-393阿里云物模型透传
主要是有3个程序,我们主要是用到第二个:讲原始数据转换成协议数据。2)rawDataToProtocol(bytes)的实现。一键配置参数-重启设备,根据返回信息判断是否配置成功。5、透传的话需要在服务器端对数据进行解析处理。2、找到对应的设备,查看设备信息。至此一个简单的透传环境就搭建好了。回到产品信息,找到透传的命令。没有问题的话点击提交 保存。4、填写订阅和推送信息。
2024-08-14 19:19:25
535
1
原创 生活杂记-苹果手机的typeC接口和安卓手机typeC接口的区别
整体来说用安卓的数据线给苹果手机充电是不会烧坏手机的,唯一可能有影响的是如果使用的充电头与苹果手机的充电协议不匹配可能无法实现快充,只能使用默认的5V充电,或者会直接断开充电输出,但是不会烧坏苹果手机的充电接口。但是官方数据线又太贵,今天我们看下到底能不能使用安卓的数据线给苹果手机充电。1、安卓的苹果手机的A1、A4、A9、 A12;B1 、B4、B9、B12引脚都是一样,说明他们的供电是一样的。3、差异点是安卓手机接口没有B6、B7、B8这些都是数据传输有关的。2、A6、A7、A8 也是一样的。
2024-07-02 16:41:52
11990
原创 项目实战(6)-便携式电流表
模块集成小尺寸处理器HC32L110、一块0.96寸的IPS LCD显示模块、充电管理模块、电量检测电路、电源指示灯、串口调试接口、程序下载接口。电流的检测主要通过三级的放大,第一级是一个电流放大器件放大倍数是50;如果第三级的增益输出值超出了ADC的量程2.5V(4095),则关掉第三级的增益,改用跟随电路,默认是自动打开第三级增益的,根据采集情况自动调节。2)数据显示:0.96寸的LCD显示屏,显示内容:锂电池电压、测试电流。1)项目应用开发中对设备功耗电流的测试,小尺寸方便携带,使用起来简单;
2024-06-17 20:03:55
605
TTS### 语音模块FT-TTS-R-01产品说明书总结
2025-04-07
泽耀透传工具,实用lora设备
2025-03-23
Bootloader STM32F407 hal库 V1.1USB 分包读取写入,解决升级文件太大无法一次性读取的问题
2025-01-21
STM32F407 基于Hal库实现BootLoader的IAP升级,文件接收方式是USB接口, 插入U盘上电识别升级文件
2025-01-20
MAX31865 STM32F407通过GPIO模拟SPI时序读取温度平台:STM32F407管脚:PB3 PB4 PB4
2024-04-16
自适应IIR格型滤波器的Matlab实现
2022-05-11
Rife算法的Matlab实现
2022-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人