
使用 VSCode 开发 STM32 全流程指南
使用 VSCode 配合 STM32CubeMX 进行嵌入式开发的完整流程。内容包括安装 VSCode、STM32CubeMX、CMake 及必要插件;配置 STM32CubeMX 生成工程;在 VSCode 中配置调试器(launch.json);以及通过修改 CMakeLists.txt 添加自定义代码文件的方法。旨在帮助开发者利用 VSCode 提升 STM32 开发效率。

使用 VSCode 配合 STM32CubeMX 进行嵌入式开发的完整流程。内容包括安装 VSCode、STM32CubeMX、CMake 及必要插件;配置 STM32CubeMX 生成工程;在 VSCode 中配置调试器(launch.json);以及通过修改 CMakeLists.txt 添加自定义代码文件的方法。旨在帮助开发者利用 VSCode 提升 STM32 开发效率。

在 STM32F407ZET6 开发板上移植 LVGL 8.3 图形库的完整流程。涵盖硬件选型、屏幕驱动移植、LVGL 源码集成、工程配置、显示与输入设备适配、系统心跳及任务调度处理。通过配置 lv_conf.h、编写 disp_flush 回调及触摸读取函数,实现 LCD 屏幕的图形界面显示与触摸交互功能。
STM32F407 微控制器中 DAC(数模转换器)外设的原理与应用。内容涵盖 DAC 的基本概念、12 位分辨率及双通道特性、软件/定时器/外部触发方式以及噪声与三角波波形生成功能。文章提供了基于标准库的完整配置步骤与 C 语言代码示例,包括时钟使能、GPIO 模拟模式配置、DAC 初始化及电压转换函数实现,帮助开发者快速掌握 DAC 在音频、电机控制等场景中的使用方法。

基于 STM32 通过 IIC 接口驱动 MPU6050 六轴运动传感器的方法,包括寄存器配置、数据读取及物理量转换。重点阐述了利用加速度计和陀螺仪数据进行四元数姿态解算的算法实现,涵盖初始化、误差计算、四元数更新及欧拉角提取。提供了完整的 C 语言代码示例,并总结了调试注意事项与应用场景。

对 STM32 二次下载出现 Internal command error 报错提供解决方案。主要原因包括 MCU 内部 Flash 未彻底擦除导致残留程序干扰通信,以及 PA13/PA14 调试引脚被复用为普通 IO 或外接电阻干扰 SWD 时序。解决方法分为两步:首先使用 STLINK Utility 软件进行全片擦除;其次检查并修改代码中的 PA13/PA14 配置,确保保留默认 SWD 功能,移除外部上下拉电阻。清理工程后重新编…
基于 STM32 定时器触发 ADC 转换并结合 DMA 传输数据的温度采样方案。通过硬件触发确保采样精度,利用 DMA 降低 CPU 占用。主要步骤包括配置定时器输出 TRGO 信号、设置 ADC 外部触发源及内部温度传感器通道、配置 DMA 循环模式搬运数据。该方案适用于对实时性和稳定性要求较高的工业控制场景。
汇总了 STM32 微控制器结合 FreeRTOS 实时操作系统的工程实践教程。内容涵盖开发环境搭建、FreeRTOS 任务调度与同步机制、堆栈管理,以及驱动开发实战。驱动部分包括 LED、DHT11 传感器及串口通信的实现,涉及状态机、环形缓冲区等技术,并探讨了 AI 辅助驱动编写的思路。适合嵌入式初学者参考学习。

介绍 DHT11 温湿度传感器特性及 STM32 驱动实现。涵盖电气参数、引脚定义、单总线通信协议与时序分析。提供基于寄存器的 C 语言驱动代码,包括初始化、读写函数及主程序逻辑,演示通过串口输出温湿度数据的方法。
一种基于STM32主控与NB-IoT通信模块的温室智能调控系统设计方案。系统通过DHT11、BH1750及土壤湿度等传感器采集环境数据,利用NB-IoT实现远程传输。硬件选型注重低功耗与稳定性,支持双电源供电。重点阐述了传感器安装位置对数据准确性的影响及具体部署方案。

讲解单链表概念与结构,利用火车厢类比说明非连续存储原理。详细阐述了结点定义、内存分配、打印、增删改查(尾插、头插、尾删、头删、查找、指定位置插入删除)及销毁的 C 语言实现。包含完整头文件、源文件及测试代码,重点展示指针操作与动态内存管理技巧。
STM32 开发中__weak 关键字的核心作用。该关键字用于声明弱定义函数,允许用户通过同名强定义函数进行覆盖。主要应用于中断服务函数和 HAL 库回调函数,系统提供默认空实现作为兜底,开发者可根据需求自定义具体逻辑,从而降低开发门槛并避免中断异常导致程序崩溃。

Linux 进程管理的核心流程,涵盖进程创建(fork 函数原理及返回值)、写时拷贝机制、进程终止场景与方法(exit/_exit/return 区别)、以及进程等待(wait/waitpid 解决僵尸进程)。通过代码示例和原理分析,帮助读者理解父子进程关系、状态检测及资源回收,掌握系统编程基础。

深入解析 Linux 环境下 C 语言实现的进度条程序。涵盖回车换行(CR/LF)原理、缓冲区机制及刷新控制。通过倒计时示例演示位宽对齐与原地更新技巧,并展示进度条架构设计与多版本迭代实现,包含头文件封装、Makefile 配置及多任务调度模拟,帮助读者掌握控制台交互的核心技术。

树与二叉树的基本概念、术语及分类,重点讲解了顺序结构存储下的堆(Heap)。内容包括堆的结构定义、初始化、销毁、插入(向上调整)、删除堆顶(向下调整)及获取堆顶等功能实现。通过对比向上与向下调整算法的时间复杂度,得出向下调整更优的结论,并提供了完整的 C 语言代码示例,涵盖头文件声明、核心算法实现及测试用例。

C 语言中栈和队列两种重要数据结构。栈遵循后进先出原则,支持压栈、弹栈等操作,可通过数组或链表实现。队列遵循先进先出原则,支持入队、出队操作,同样支持数组和链表实现。文章对比了两者特性,并列举了函数调用、表达式求值、任务调度等应用场景。掌握这些基础有助于学习更复杂的数据结构。

Linux 网络编程涉及 IP 地址、端口号及套接字概念。TCP 为可靠面向流协议,UDP 为不可靠面向报文协议。网络字节序规定为大端模式。介绍 socket 编程常见 API,包括 socket、bind、listen、accept、connect 等函数,以及字节序转换(htonl 等)和 IP 地址转换(inet_aton 等)函数。此外还说明了 sockaddr 结构的作用。

系统讲解了树与二叉树的基本概念、性质及存储方式,重点阐述了堆(Heap)的定义、建堆算法(向下/向上调整)及 C 语言完整实现。此外还介绍了利用堆解决 TOP-K 问题的方法,适用于大数据量下的极值筛选场景。

FPGA 项目的板级调试方法及基于 Nios II 软核处理器的 Qsys 系统搭建流程。内容包括使用 Quartus II 工具进行内存内容编辑与验证,通过 Qsys 添加 System ID、JTAG UART、PIO、RAM 及 Timer 等外设并配置连接。随后在 EDS 环境中创建 C 语言工程,编写 LED 闪烁控制程序,完成软硬件联调。

详细讲解了归并排序和计数排序的原理、代码实现及复杂度分析。归并排序采用分治策略,时间复杂度 O(n log n),空间复杂度 O(n),具有稳定性。计数排序利用元素值作为索引,适用于数据范围小的场景,时间复杂度 O(n+k)。此外,文章还介绍了 memset 函数用法,区分了内排序与外排序的应用场景,并阐述了如何判断排序算法的稳定性。

Linux 网络套接字编程核心知识,包括网络字节序定义与转换函数(htons/htonl 等)、套接字类型分类(域间、原始、网络)、标准头文件列表、sockaddr 通用结构设计及 sockaddr_in 具体实现,以及 IPv4 地址在整数与字符串间的转换方法(inet_pton/ntop)。