小仇学长
感谢关注,一起进步。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32CubeMX(十九)USB-HID(键盘)
USB HID 接口是的缩写,是 USB 协议中专门为 “人机交互类设备” 定义的标准通信接口,旨在简化这类设备与电脑(或其他主机)的连接和数据交互,无需额外安装复杂驱动(多数系统自带通用 HID 驱动)。USB 协议将设备分为多个 “类”(Class),HID 是其中一个独立的设备类,主要面向的设备。其核心优势是 “即插即用(Plug and Play)。原创 2025-09-16 09:55:31 · 80 阅读 · 0 评论 -
STM32CubeMX(十八)USB-MSC:外部flash模拟U盘
本文介绍了MSC(MassStorageClass)的基础知识和实践操作。MSC是USB协议中让设备被识别为"可移动存储"的规范,通过SCSI命令集实现主机与设备交互。实践部分详细说明了在STM32上配置USB MSC的步骤:1)基础配置;2)USB参数设置(扇区大小4096字节);3)添加W25Q系列Flash芯片的驱动代码;4)修改存储容量为128MB并调整相关函数;5)验证功能,格式化后即可实现U盘读写操作。文章提供了完整的代码实现方案,适合嵌入式开发人员参考。原创 2025-08-29 15:59:59 · 107 阅读 · 0 评论 -
STM32CubeMX(十七)内部Flash读写
本文介绍了STM32内部Flash存储器的基本概念和操作流程。主要内容包括:1.计算机存储单位(位、字节、字)的定义及换算关系;2.STM32内部Flash的结构划分(主存储器、系统存储器和选项字节)及其功能;3.通过map文件分析代码占用的Flash空间,确定安全写入区域;4.详细讲解了Flash读写操作的实现代码,包括地址计算、页擦除、数据写入和校验等关键步骤;5.提供了完整的测试代码示例,演示如何在STM32上实现Flash数据的写入和读取操作。文中特别强调了操作时的注意事项,如地址对齐、页擦除要求以原创 2025-08-29 11:15:21 · 84 阅读 · 0 评论 -
STM32CubeMX(十六)OTA升级
本文介绍了嵌入式设备OTA(空中下载)升级的实现原理与关键流程。OTA通过无线网络实现设备固件更新,具有便捷、安全的特点。升级采用分阶段方式:1)下载阶段通过4G模块获取新固件并暂存外部Flash;2)重启后由Bootloader进行三次CRC校验(服务器文件、外部Flash、内部Flash),确保数据完整性;3)将验证后的固件写入内部Flash应用区。关键设计包括:使用外部Flash暂存避免运行中覆盖程序、三次校验构建全链路安全保障、Bootloader独立控制升级流程。该方案有效解决了嵌入式设备安全升级原创 2025-08-26 13:48:00 · 73 阅读 · 0 评论 -
STM32CubeMX(十五)USB-IAP(DFU固件升级)
DFU 的全称是,是一种由 USB-IF(USB 标准化组织)定义的,是ST官方推出的一个通过USB接口进行IAP升级的方案。本质是为设备提供一个 “脱离正常操作系统 / 应用程序” 的专用模式 —— 在该模式下,设备仅加载最基础的硬件驱动(不启动核心功能),允许电脑通过 USB 直接与设备的 “固件存储芯片” 通信,实现固件的擦除、写入或校验。原创 2025-08-25 09:42:21 · 261 阅读 · 0 评论 -
STM32CubeMX(十四)SDIO驱动SD(TF)卡
这篇文章详细介绍了STM32使用SDIO协议操作SD/TF卡的实现方法。主要内容包括:1)基础配置部分,涉及SDIO接口、中断和DMA的使能;2)核心功能实现代码,包含SD卡信息打印、块擦除、阻塞式读写(写入测试数据、读取验证数据)以及完整测试流程;3)DMA读写功能。文章还提供了main.c中的缓冲区定义和主程序示例,展示了如何初始化硬件并执行完整的SD卡测试流程。所有代码均基于HAL库实现,适用于STM32CubeMX开发环境。原创 2025-08-19 13:40:22 · 58 阅读 · 0 评论 -
STM32CubeMX(十三)FatFs文件系统(SPI驱动W25Qxx)
STM32CubeMX(四)串口配置_stm32cube配置串口-CSDN博客,以及STM32CubeMX(十二)SPI驱动W25Qxx(Flash)-CSDN博客这里我们需要将SPI文章最后的代码全部复制到我们的工程项目中。原创 2025-08-09 11:18:26 · 172 阅读 · 0 评论 -
STM32CubeMX(十二)SPI驱动W25Qxx(Flash)
本文介绍了STM32通过SPI接口驱动W25Q64 Flash存储器的快速实现方法。主要内容包括:SPI2接口配置、片选引脚设置、SPI数据收发函数封装,以及W25Q64的基本操作函数实现,如读取ID、状态寄存器、数据读写、扇区擦除等。测试程序通过读取设备ID、擦除扇区、写入数据并验证读取,完整演示了Flash存储器的操作流程。所有代码基于HAL库实现,包含详细的注释说明,可直接用于项目开发。原创 2025-08-08 21:58:25 · 212 阅读 · 0 评论 -
STM32CubeMX(十一)CRC校验
和:用于。函数内部会先通过重置 CRC 计算单元(将 CRC 初始值载入),然后依次输入数据计算,最终返回这批数据的独立 CRC 结果。适用于单次校验场景(如对一帧完整数据单独计算 CRC)。:用于。函数不会重置 CRC 计算单元,而是基于上一次计算的结果继续累加新数据,最终返回累计后的 CRC 结果。适用于数据分批次传输的场景(如先传一部分数据计算临时 CRC,后续数据继续累加计算,最终得到整体 CRC)。原创 2025-08-08 13:20:18 · 257 阅读 · 0 评论 -
STM32CubeMX(十)FreeRTOS实时操作系统一CPU利用率
摘要:本文介绍了FreeRTOS基础配置及多任务实现方法。主要包括:1)启用任务运行时间统计功能;2)创建多个LED控制任务;3)配置定时器和串口;4)添加定时器中断回调函数实现系统计时;5)通过任务函数获取并打印CPU利用率等运行信息。实验通过两个LED灯以不同频率闪烁,同时定时输出各任务状态、优先级、堆栈使用情况和CPU利用率等统计信息。关键步骤包括开启定时器中断、初始化任务函数和实现运行信息采集功能。原创 2025-08-08 09:39:23 · 86 阅读 · 0 评论 -
STM32CubeMX(九)FreeRTOS实时操作系统一内存管理(内存池)
本文介绍了FreeRTOS内存池(osPool)的原理与应用。内存池是一种预分配固定大小内存块的管理机制,通过"提前备好工具箱"的类比,说明其"以空间换时间"的特性,能有效减少内存碎片、提升分配效率并降低动态分配风险。文章详细对比了FreeRTOS的四种内存管理策略(heap_1至heap_4),重点推荐了兼具灵活性和抗碎片能力的heap_4方案。最后通过串口通信实例,展示了内存池与消息队列的协同工作机制:在串口中断中动态申请内存块存储数据,通过消息队列传递指针,由后原创 2025-08-07 16:56:42 · 107 阅读 · 0 评论 -
STM32CubeMX(八)FreeRTOS实时操作系统一任务创建
本文介绍了FreeRTOS在STM32上的基础配置和实践操作。主要内容包括:1)基础配置中的模式选择(CMSIS-V1/V2)和内核参数设置(如任务优先级、栈大小、时钟节拍等);2)内存管理方案选择(推荐heap_4);3)实践操作步骤:选择非SysTick定时器作为时基源(如TIM7),创建任务时合理设置优先级和栈大小;4)通过示例代码演示了两个LED以不同周期闪烁的任务实现。文中提供了详细的参数说明和优化建议,帮助开发者根据实际需求配置FreeRTOS系统。原创 2025-08-07 11:42:07 · 194 阅读 · 0 评论 -
STM32CubeMX(七)RTC实时时钟
本文介绍了STM32 RTC(实时时钟)的基础配置与实现方法。首先需激活RTC并配置时钟源(LSE或LSI),然后在主程序中通过HAL_RTC_GetTime和HAL_RTC_GetDate函数获取时间日期数据,并使用串口打印显示。文章还提供了保持重启后时间连续性的方法,即注释掉rtc.c中的相关初始化代码。该实现包含完整的代码示例,展示了如何通过STM32CubeMX配置RTC并实现实时时钟功能,适用于需要时间记录的应用场景。原创 2025-08-07 11:02:13 · 102 阅读 · 0 评论 -
STM32CubeMX(六)通用定时器配置(PWM、编码器)
定时器的计数器仅在外部触发信号为高电平时运行,适用于需要外部信号控制计数的场景。:定时器的时钟由外部输入引脚(如 TI1)提供,适用于需要外部时钟同步的应用。:当外部触发信号有效时,定时器开始运行一次,适用于单次触发的应用。:当外部触发信号有效时,定时器计数器被复位。:外部时钟模式 1。原创 2025-08-06 10:44:41 · 458 阅读 · 0 评论 -
STM32CubeMX(五)基本定时器配置(定时)
本文介绍了STM32F103VET6基本定时器(TIM6/TIM7)的配置方法,实现LED每1秒状态翻转功能。主要内容包括:1) 确定定时器时钟源为APB1(72MHz);2) 配置定时时间和中断优先级;3) 通过HAL_TIM_Base_Start_IT()启动定时器;4) 在中断回调函数HAL_TIM_PeriodElapsedCallback()中实现LED引脚电平翻转。该方案适用于需要精确定时控制的嵌入式应用开发。原创 2025-08-06 10:04:15 · 339 阅读 · 0 评论 -
STM32CubeMX(四)串口配置
摘要:本文详细介绍了USART串口通信的基础配置与实现方法。首先解析了8种通信模式(异步/同步/单线半双工等)及其适用场景,以及4种硬件流控制模式的选择策略。随后给出了具体配置步骤:设置异步模式并禁用硬件流控制,配置波特率115200/8位数据/无校验/1位停止位等通信参数,最后说明中断使能与优先级设置要点。全文为STM32串口开发提供了完整的配置参考,特别强调了不同模式的应用场景选择与中断管理的注意事项。原创 2025-08-05 16:43:30 · 1490 阅读 · 0 评论 -
STM32CubeMX(三)GPIO配置(按键控制LED灯)
本文介绍了STM32CubeMX中GPIO的基础配置方法。首先需完成项目基础设置,然后根据原理图将LED1的PE5引脚配置为输出模式,KEY1的PC3引脚配置为输入模式。最后提供测试代码:在while循环中检测按键状态,当KEY1按下时点亮LED1,实现按键控制LED灯的功能。代码包含消抖处理和状态判断,确保操作稳定性。原创 2025-08-05 15:22:36 · 259 阅读 · 0 评论 -
STM32CubeMX(二)新建工程、界面认识、基础配置
本文介绍了使用STM32CubeMX开发工具的基本流程。主要内容包括:1)新建工程;2)界面功能说明,重点介绍引脚配置、时钟系统设置(LSE/HSI/HSE时钟源)和项目管理选项;3)功能配置步骤,包括时钟频率设置、SWD调试模式配置和代码输出选项;4)生成代码,其中.ioc文件保存了所有配置信息,作为初始化代码生成的依据。该工具可通过图形化界面快速完成STM32芯片的初始化配置工作。原创 2025-08-05 14:46:39 · 270 阅读 · 0 评论 -
STM32CubeMX(一)安装硬件支持包
本文介绍了更换硬件支持包下载地址及下载方法。首先说明如何修改支持包的默认保存路径,然后以STM32F1为例演示下载流程,同时提示如需STM32F4支持包可直接下载对应版本。文中特别说明若安装时要求登录账号,只需使用邮箱注册新账号并登录即可完成下载操作。原创 2025-08-05 13:57:35 · 130 阅读 · 0 评论