
嵌入式
文章平均质量分 51
剑藏锋
硬件工程师
展开
-
嵌入式学习(39)-基于STM32的GPIO电平反转检测
项目中需要用的IO口的检测,主要是脉冲触发,所以需要去除由于扫描频率太快导致的二次捕捉误判,需要进行反转检测。原创 2025-04-18 15:50:44 · 138 阅读 · 0 评论 -
嵌入式学习(38)-基于STM32的气压计GZP6859D驱动
GZP6859D 型压力传感器采用 SOP6 封装形式,内部集成了高精度 ADC芯片,对传感器芯片输出的偏移、灵敏度、温漂和非线性进行数字补偿,以供电电压为参考,产生一个经过校准、温度补偿后的标准数字信号。GZP6859D 型压力传感器尺寸小,方便客户安装。产品广泛用于医疗电子、汽车电子、运动健身器材等领域。原创 2025-04-18 13:54:42 · 248 阅读 · 0 评论 -
嵌入式学习(37)-STM32串口发送中断的实现
项目中需要用到发送中断,所以了解了发送中断的一些知识。原创 2025-04-13 10:26:32 · 171 阅读 · 0 评论 -
嵌入式学习(36)-ModbusCRC16校验程序
基于STM32的ModbusCRC16校验程序。原创 2025-04-07 14:49:06 · 207 阅读 · 0 评论 -
嵌入式学习(35)-TTS语音模块FT-VBM-OS支持ModbusRTU
FT-TTS-R-01 (下简简“模块”)是一款可将串口传入的文本信息转成语音播报的控制器。块”可下接收任意字 符或者汉字,并通过 TTS 语音合成功能,清晰、准确、自然的合成并播放音频。该块”还带有 1 路继电器输出,可 下用来外接报警装置或者控制其他设备,可下广泛应用到各种需要语音播报的场景。块”内置功放,可直接 3W 无缘喇叭,也可下自行外扩音箱和功放。原创 2025-04-07 14:45:27 · 819 阅读 · 0 评论 -
嵌入式学习(34)-Lora模块塔石L33
前段时间使用了泽耀的Lora模块,最近打算使用塔石的Lora模块,因为塔石的设备使用较多,都是使用同一个配置软件,所以这样后续管理起来就比较方便。L33 系列产品是一款 TTL 串口转 LoRa 透传模块,支持先进的LoRa 调制方式,具有远距离抗干扰的优点;支持定点传输广播传输、信道监听、中继等功能;拥有 FE 前向纠错功能提高通信稳定性。模块在空旷理想环境下,6000~16000 米远距离通信。原创 2025-04-02 13:16:27 · 336 阅读 · 0 评论 -
嵌入式学习(33)-超声波测距HC-SR04
HC-SR04模块包括一个超声波发射器和一个接收器。发射器向一个方向发射超声波,当超声波碰到障碍物后会反射回来,接收器接收反射波。通过计算发射到接收的时间差,结合声速,可以计算出距离。原创 2025-03-27 20:55:03 · 255 阅读 · 0 评论 -
嵌入式学习(32)-TTS语音模块SYN6288
SYN6288 中文语音合成芯片是北京宇音天下科技有限公司于 2010年初推出的一款性/价比更高,效果更自然的一款中高端语音合成芯片。公司最新推出的 SYN6288 语音合成芯片,继承了 0SYN06188 语音芯片的优秀特点:最小 SSOP28L 贴片封装、硬件接口简单、低功耗、音色清亮圆润、极高的性/价比:除此之外,SYN6288 在识别文本/数字/字符串更智能、更准确,语音合成自然度更好、可懂度更高。SYN_FrameInfo(5, "[v7][m4][t5]欢迎使用TTS语音模块");原创 2025-03-27 13:26:57 · 503 阅读 · 0 评论 -
嵌入式学习(31)-Lora模块A39C-T400A30D1a
A39C-T400A30D1a是一款410~490MHz,1W,具有高稳定性,工业级的无线串口模块。LORA扩频调制,实测传输距离最远可达10K米。该模块具备数据广播、数据监听、定点传输、主从模式、自动中继、定点唤醒等传输方式,支持超低功耗,多样化的功能和极高的稳定性,可广泛应用于各种环境下,轻松实现低频无线数据传输。原创 2025-03-23 21:34:58 · 271 阅读 · 0 评论 -
嵌入式学习(30)-STM32F103 WS2812驱动
背景:之前在STM32F407的平台是实现了WS2812的驱动,今天移植到STM32F103的平台发现WS2812无法驱动点亮。最终找到了原因:是GPIO模拟时序的原因。原创 2025-03-23 06:15:00 · 371 阅读 · 0 评论 -
嵌入式学习(29)-ASM330LHH驱动程序
ASM330LHH是一种系统级封装器件,具有3D数字加速度计和3D数字陀螺仪,扩展温度范围上限为+105 °C,适用于汽车非安全领域的应用。ASM330LHH 的满量程加速范围为±2 g、±4 g、±8 g 和 ±16 g,角速度范围扩展至 ±125 dps、±250 dps、±500 dps、±1000 dps、± 2000 dps 和 ±4000 dps,适合各种汽车应用。原创 2025-03-02 15:53:42 · 375 阅读 · 0 评论 -
嵌入式学习(28)-模糊PID
在现实控制中,被控系统并非是线性时不变的,往往需要动态调整PID的参数,而模糊控制正好能够满足这一需求,原创 2025-02-08 01:00:00 · 235 阅读 · 0 评论 -
嵌入式学习(26)-STM32F407 Hal库 BootLoader-APP
上篇文章讲到Bootloader的升级模式需要两个工程文件,一个为BootLoader工程,一个为APP工程;这篇文章就描述APP工程。原创 2025-02-07 09:44:18 · 615 阅读 · 0 评论 -
嵌入式学习(25)-STM32F407 Hal库 BootLoader
BootLoader就是单片机启动时候运行的一段小程序,这段程序负责单片机固件的更新,也就是单片机选择性的自己给自己下程序。可以更新,也可以不更新,更新的话,BootLoader更新完程序后,跳转到新程序运行;不更新的话,BootLoader直接跳转到原来的程序去运行BootLoader更新完程序后并不擦除自己,下次启动后依然先运行BootLoader程序,又可以选择性的更新或者不更新程序,所以BootLoader就是用来管理单片机程序的更新。原创 2025-01-22 10:40:55 · 364 阅读 · 0 评论 -
嵌入式学习(24)-STM32F407 Hal库IAP升级
第二部分代码可以使用第一部分代码 IAP功能烧入,也可以和第一部分代码一起 烧入,以后需要程序更新 时 再通过第一部分 IAP代码更新。我们将第一个项目代码称之为Bootloader程序,第二个项目代码称之为 APP程序,他们存放在 STM32F407 FLASH的不同地址范围,一般从最低地址区开始存放 Bootloader紧跟其后的就是 APP程序(注意,如果 FLASH容量足够,是可以设计很多 APP程序的。通常 实现 IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写。原创 2025-01-21 15:07:01 · 350 阅读 · 0 评论 -
嵌入式学习(23)-STM32F407 Hal库U盘读写
目前如果要实现USB的存储设备的读写,大体分三步走:1、判断是否有U盘;2、挂在U盘;3、读写文件。原创 2025-01-21 14:48:38 · 667 阅读 · 0 评论 -
嵌入式学习(22)-阿里云物模型透传-下发控制指令
在之前的文章里描述了如何将单片机采集到的数据通过透传上传的阿里云服务器,本篇文章主要介绍阿里云服务器通过透传下发指令控制单片机设备。原创 2025-01-06 13:20:30 · 388 阅读 · 0 评论 -
嵌入式学习(21)-正点原子脱机下载器Mini-Pro的使用
通过脱机下载器可以脱离电脑给电路板下载程序,方便在产线上给PCB烧录程序。原创 2025-01-03 16:08:10 · 1482 阅读 · 0 评论 -
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(五)
为了便于用户了解如何使用移植好的FlashDB库,所以打算简单记录下使用过程。原创 2025-01-03 15:51:21 · 250 阅读 · 0 评论 -
嵌入式学习(20)-STM32的ID号读取
在STM32的全系列MCU中均有一个96位的唯一设备标识符。在ST的相关资料中,对其功能的描述有3各方面:用作序列号(例如 USB 字符串序列号或其它终端应用程序)在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性激活安全自举过程等在资料中对其特性的描述是:96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远不能改变这些位。原创 2024-12-29 18:54:16 · 595 阅读 · 0 评论 -
嵌入式学习(19)-STM32F407-EEPROM 小数的写入与读取
嵌入式应用中有时需要保存一些参数,EEPROM就是一种方法;保存的参数遇到小数的情况,这时候如何便捷的实现小数的保存?下面介绍一种实现方式。原创 2024-12-11 11:01:06 · 435 阅读 · 0 评论 -
嵌入式学习(18)-stm32F407串口接收空闲中断+DMA
在一些一次性接收大批量数据的引用场合,如果使用接收中断会频繁的进入接收中断影响代码的运行效率。为了解决这个问题可以使用串口的空闲中断+DMA实现。原创 2024-12-11 10:47:32 · 1111 阅读 · 0 评论 -
嵌入式学习(17)-stm32F407串口使用注意事项
在网上也找了一些资料供参考“STM32F4的串口RX引脚不能被设置为输入是因为串口的接收(RX)功能是由硬件电路实现的,无法通过软件配置来控制。串口接收功能需要通过外部硬件电路来检测接收数据,然后将接收到的数据送入串口接收缓冲区。原创 2024-12-07 18:56:38 · 356 阅读 · 0 评论 -
嵌入式学习(16)-stm32通用GPIO模拟串口发送数据-增加重定义
为了让我们实现的串口printf功能,需要改变之前的重定义功能。原创 2024-12-06 13:41:25 · 458 阅读 · 0 评论 -
嵌入式学习(15)-stm32通用GPIO模拟串口发送数据
在项目开发中可能会遇到串口不够用的情况这时候可以用通过GPIO来模拟串口的通信方式。原创 2024-12-06 13:18:13 · 470 阅读 · 0 评论 -
嵌入式学习(14)-数据串对比
对于一些Wifi、蓝牙、网络服务器需要对数据进行交互的数据处理,对应答进行检验。提供几种检验应答数据的方式。原创 2024-11-20 09:29:20 · 230 阅读 · 0 评论 -
嵌入式学习(13)-塔石TAS-LAN-476串口服务器
TAS-LAN-476是一款实现物理串口转物理网口的设备,TAS-LAN-476 是工业级数据终端产品,该产品以以太网的方式为工业用户提供数据传输通道。设备软件功能完善,覆盖绝大多数常规应用场景,用户只需通过简单的设置,即可实现串口到网口的双向数据透明传输。并且支持自定义注册包、心跳包、DHCP 动态 IP 地址、DNS 域名解析、底层协议心跳包和网络保活等功能。项目中是将TAS-LAN-476作为一个TCP客户端,参数的配置可以通过串口或者网口的方式,文档描述简单的网口测试配置过程。原创 2024-11-20 08:09:45 · 1288 阅读 · 0 评论 -
嵌入式学习(12)-记录编译版本信息
为了记录编译程序的时间版本,需要有个字符串信息保存当前编译的时间信息,可以通过编译器自带的宏定义实现:原创 2024-11-14 19:53:24 · 350 阅读 · 0 评论 -
嵌入式学习(11)-WS2812灯珠-WS2812FX库
WS2812FX是一个专为Arduino和ESP8266微控制器设计的LED灯光效果库,支持WS2811/WS2812(包括NeoPixels)系列可编程LED。这个开源项目拥有超过55种预设的灯光效果,旨在作为Adafruit NeoPixel库的增强替代品。它提供易于使用的界面,允许用户在运行时动态控制速度、亮度,并且支持声音同步功能。该项目主要采用C++编程语言进行开发。原创 2024-11-08 15:50:55 · 846 阅读 · 0 评论 -
嵌入式学习(11)-WS2812灯珠
下面显示了四个WS2812通过数据性级联的方式。在串行通讯中使用不同高低电平脉冲表示数据0,1编码。WS2812的级联控制协议非常简单。通过一根信号线就可以进行串行异步信号发送。使用GPIO模拟时序时:GPIO的驱动频率大约是1MHz。原创 2024-11-08 14:19:51 · 289 阅读 · 0 评论 -
嵌入式学习(9)-EventOS 事件驱动管理
EventOS,是一个面向单片机、事件驱动的嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。EventOS的主要特性列举如下:(1)事件总线为核心组件,灵活易用,是进行线程(状态机)间同步或者通信的主要手段,也是对EventOS分布式特性和跨平台开发进行支持的唯一手段。事件支持广播发送,或者发布-订阅机制两种方式(二选一)。(2)全局事件队列,摒弃每个线程(状态机)拥有自己的事件队列的方式,只有一个全局事件队列,极限压缩对RAM的占用。原创 2024-11-08 10:04:55 · 726 阅读 · 0 评论 -
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(四)
首先新建两个用户文件,将Demo例程中main函数中的部分测试代码复制到User.c里面,在头文件里面定义一些函数,编写相关的时序测试代码。第三步在工程的应用层添加C源文件和头文件。粘贴替换目标文件中的配置文件。测试了浮点数和字符串的读写。原创 2024-11-04 09:38:25 · 345 阅读 · 0 评论 -
嵌入式学习(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 · 999 阅读 · 0 评论 -
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(三)
第三步:在中间层添加C文件和头文件的路径。第一步复制fal文件夹到目标文件夹。原创 2024-10-30 10:35:34 · 282 阅读 · 0 评论 -
嵌入式学习(7)-RTC时钟DS3231
DS3231是一款高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。DS3231提供两个可编程日历闹钟和一路可编程方波输出。DS3231与单片机通过I2C双向串行总线传输地址与数据。原创 2024-10-30 07:36:20 · 1041 阅读 · 0 评论 -
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(二)
由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所带来的风险。注:Demo工程的代码是基于操作系统的,项目中是裸机所以需要根据提供的Demo例程移植裸机代码。移植的过程也是这三步走。第一部分:例程中SPI的一部分初始化内容是在msp.c回调函数中实现的。原创 2024-10-29 08:29:08 · 432 阅读 · 0 评论 -
嵌入式学习(6)-Stm32F4xx裸机移植FlashDB(一)
FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。FlashDB 提供了多样化的数据存储方案,不仅资源占用小,并且存储容量大,非常适合用于物联网产品。时序数据库 :存储动态产生的结构化数据:如 温湿度传感器采集的环境监测信息,智能手环实时记录的人体健康信息等;键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。原创 2024-10-29 08:21:35 · 610 阅读 · 0 评论 -
嵌入式学习(5)-修改Keil的编辑界面显示背景
在已有的背景配置情况下,将设置信息复制然后覆盖当前文件。根据自己的个人信号,个性化选择颜色。原创 2024-09-14 09:08:18 · 488 阅读 · 0 评论 -
嵌入式学习(4)-塔石TAS-LTE-393阿里云物模型透传
主要是有3个程序,我们主要是用到第二个:讲原始数据转换成协议数据。2)rawDataToProtocol(bytes)的实现。一键配置参数-重启设备,根据返回信息判断是否配置成功。5、透传的话需要在服务器端对数据进行解析处理。2、找到对应的设备,查看设备信息。至此一个简单的透传环境就搭建好了。回到产品信息,找到透传的命令。没有问题的话点击提交 保存。4、填写订阅和推送信息。原创 2024-08-14 19:19:25 · 535 阅读 · 0 评论 -
嵌入式学习(3)-Astyle自动调整Keil代码格式
使用时点击工具里面的“格式化代码”;解压到Keil的安装目录。一、Astyle下载。三、配置Keil工具。原创 2024-06-05 22:06:37 · 350 阅读 · 0 评论