- 博客(7)
- 收藏
- 关注
原创 STM32串口收发策略
本文介绍了基于DMA和空闲中断的串口数据接收处理方案,采用环形缓冲区和双缓冲区技术实现高效数据管理。主要内容包括:1. 初始化串口、DMA和NVIC,配置环形缓冲区实现数据读写;2. 使用DMA+空闲中断接收数据,通过环形缓冲区暂存数据;3. 实现双缓冲区方案,一个缓冲区接收数据时另一个缓冲区可供处理;4. 提供超时解析方案,通过定时器判断数据接收完成。方案包含缓冲区初始化、读写操作、数据量计算等核心功能,并针对不同编译器提供printf重定向实现。该设计适用于STM32等嵌入式系统,能有效提高串口通信效率
2025-12-30 22:45:55
258
原创 STLink使用SWD方式下载代码
我用的开发板是野火H750XB核心主控板,编程软件是cubeide,野火官方使用的DAP烧录器,但是我现在只有STLink下载器,下图是开发板上面的SWD丝印图。我手中有这么几款STLink下载器,但只有图中连接上的(右下角)成功了。GND➡️20引脚(偶数除了2好像都是GND)再给开发板外部供电就可以下载代码了。
2025-12-30 22:38:16
169
原创 ADC反算ntc(根据硬件原理图讲解)
摘要:本文详细介绍了NTC热敏电阻测温系统的硬件电路原理和软件实现方案。硬件部分采用运放电压跟随器电路实现阻抗匹配,通过分压电路将NTC阻值变化转换为电压信号。软件部分基于STM32 HAL库开发,使用DMA双缓冲技术采集ADC数据,通过RTOS任务进行数据处理,采用B值公式将电阻值转换为温度值。系统实现了多通道温度测量功能,并通过互斥锁保证数据安全访问。
2025-12-22 19:00:37
687
原创 PPM控制无刷FOC电机(不讲原理直接实操)
本文介绍了PPM模式电机控制的实现方法。首先需配置驱动器为PPM模式,选择内部时钟并初始化PWM通道,设置20ms周期(如96MHz时钟需配置预分频器为95)。关键函数SetPPM_PulseWidth()用于设置1000-2000us范围的脉冲宽度。为保护主控板,采用TLP2745光耦进行电气隔离,分析显示当MCU输出低电平时光耦输出高电平,反之亦然。最终通过补偿计算(CCRx=Period-pulse_us)解决光耦反相问题,实现左右电机的精准控制。
2025-12-22 18:56:04
447
原创 用已经ping通的以太网实现mqtt的部署(如何ping通看上一篇)
本文详细介绍了在Windows系统下搭建本地EMQX MQTT服务器的方法。首先下载并解压EMQX Windows版本,通过命令行启动服务后,可通过浏览器访问本地端口18083进入管理界面(默认账号admin/密码public)。文章讲解了如何修改配置文件使服务器对局域网开放,并演示了使用MQTTX客户端进行主题订阅与发布的测试流程。此外还介绍了客户端认证功能的启用方法,限制只有授权用户才能连接服务器。最后提到下一步计划将MQTTX客户端替换为单片机设备,实现单片机与MQTT服务器的通信测试。
2025-11-23 19:35:30
544
原创 STM32使用LWIP能ping通的保姆级教程!!!绝对能通!!!先裸机再RTOS
1、首先确认LAN8720引脚的连接,并在cubemx的引脚配置界面对其手动初始化(因为直接使用cubemx左侧初始化的引脚不一定对得上),中断引脚单独配置,我已经配过了,参考的是cubemx的生成提示。裸机ping通了之后,开始初始化RTOS,实测裸机下初始化lwip后主循环运行不了,至于还能ping通是因为这是硬件在内部实现的,原因我目前还不知道。如果没有ping通,确认IP对不对,有没有在正确的地方拉低拉高,pcf的初始化对不对。如果你的引脚是直连的,那你直接用hal库的gpio函数翻转电平即可。
2025-11-09 18:27:09
881
5
原创 FreeRTOS新手入门基本介绍
1、在传统的裸机程序中,只有一个主程序流程,所以只有一个全局的栈(通常是微控制器启动时由启动代码分配的)。然而,为了实现这种独立的执行和上下文切换,。这样,当任务 A 暂停执行,任务 B 开始执行时,任务 A 的所有临时数据和状态都被保存在它自己的栈上,而任务 B 则使用它自己的栈。当任务 A 再次被调度运行时,它的上下文可以从自己的栈中恢复,仿佛从未中断过一样。比方说,在执行LED间隔500ms亮灭并且按键还要实现计数,在裸机里用delay函数显然行不通,但是在RTOS里面使用delay函数,
2025-11-01 16:04:17
656
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅