
STM32
雾削木
分享个人学习资料,仅供学习参考使用,如有侵权请联系删除。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32 HAL PWM频率蜂鸣器
本文介绍了STM32中动态调整PWM频率的实现方法。通过解析定时器的PWM频率计算公式,给出了基于HAL库的频率更新函数Tim_Update_PwmFreq(),该函数通过计算新的自动重装载值(ARR)来设置目标频率,并保持50%占空比。文章详细说明了函数执行流程,包括停止PWM、更新ARR值、设置比较值和重启PWM等步骤,并提供了使用注意事项和扩展建议。示例代码展示了如何利用该函数实现简单的音乐播放功能,通过循环调用频率更新函数来输出不同音符。原创 2025-07-11 17:02:40 · 363 阅读 · 0 评论 -
MPU6050 模块使用和错误记录
本文介绍了MPU6050传感器使用中的常见问题及解决方法。主要内容包括:1)DMP库下载地址和版本选择(eMD6.12和5.1.3);2)新版模块可能无需初始化,但会出现"Unsupported software product rev"错误,需添加版本7支持;3)I2C通信问题,包括地址应为0x70(新版)或0xD0,以及IIC_Send_Ack函数修改建议;4)调试发现关闭I2C主机模式会导致数据读取失败。文中还提供了相关代码片段和问题参考链接。原创 2025-07-01 13:44:39 · 278 阅读 · 0 评论 -
STM32HAL 旋转编码器教程
摘要:该文介绍了一种时钟编码器的读取方法,通过判断TIM计数方向(__HAL_TIM_IS_TIM_COUNTING_DOWN)来调整累计值,顺时针旋转时(0)减少计数器值,逆时针(1)时增加。使用__HAL_TIM_GET_COUNTER获取当前计数值,每次旋转约1-2个计数。可通过__HAL_TIM_SET_COUNTER将计数器重置为0,用于判断单次旋转的计数变化。该方法直接操作定时器寄存器(TIMx->Instance->CNT),实现精确的旋转方向与步数检测。原创 2025-06-28 18:04:06 · 265 阅读 · 0 评论 -
DHT11 STM32 HAL驱动库 整数
摘要:该代码实现了一个STM32平台下的DHT11温湿度传感器驱动库。主要包含DHT11.h头文件定义数据结构和接口,以及DHT11.c源文件实现具体功能。通过GPIO单总线协议通信,提供初始化(DHT11_Init)和数据读取(DHT11_ReadData)函数,可获取温度(整数℃)和湿度(整数%RH)数据。使用时需自定义微秒延时函数delay_us,并包含超时检测和数据校验机制。示例代码展示了读取数据后根据阈值控制LED和OLED显示的逻辑。该驱动适用于STM32F1/F4系列MCU,需根据具体硬件调整原创 2025-06-27 15:50:13 · 184 阅读 · 0 评论 -
STM32G070x 单片机项目代码解析:基于 HAL 库的嵌入式系统开发
一个基于STM32的嵌入式系统项目架构。项目采用标准STM32工程结构,包含系统头文件、外设配置、用户变量定义、初始化和主程序等模块。系统配置了外部时钟(HSE)和PLL锁相环,通过SPI、TIM、UART等外设实现功能,包括LED控制、按键检测和OLED显示。主程序采用轮询方式处理LED状态切换、按键输入和显示更新等任务。该架构展示了STM32项目的基本开发流程和常用外设配置方法。原创 2025-06-25 12:32:08 · 354 阅读 · 0 评论 -
STM32 环境监测与控制系统的设计与实现
本文介绍了一个基于STM32F103微控制器的环境监测与控制系统设计。系统采用DHT11传感器采集温湿度数据,通过OLED显示环境参数,并支持用户通过按键设置阈值参数。系统具备PWM电机控制、状态指示和异常报警功能,可实现自动环境调节。硬件设计包含传感器模块、显示模块和控制模块,软件采用模块化架构实现数据采集、处理和显示功能。系统支持Flash存储阈值参数,具有掉电保护功能。设计重点解决了DHT11时序控制、OLED显示优化和按键处理等技术难点。该系统适用于智能家居、温室大棚等环境监测场景,未来可扩展无线通原创 2025-06-24 23:21:08 · 803 阅读 · 0 评论 -
STM32F4 RTThread error: macro “Error_Handler“ passed 1 arguments, but takes just 0
摘要:文章指出CubeMX生成的代码与RTThread的函数存在冲突,解决方法是在main.h文件中进行相应修改,然后在main.c中重新引用修改后的main.h文件即可解决冲突问题。该方法通过调整头文件引用顺序和内容来消除函数命名冲突。原创 2025-06-23 19:29:00 · 186 阅读 · 0 评论 -
RThread Studio STM32F407ZGT6 移植案例
【摘要】在STM32F407ZGT6移植RT-ThreadOS4.0.3时,需在CubeMX生成项目后新建SConscript文件,排除冲突文件并指定构建源文件。通过修改Src目录内容,使用__weak关键词重定义函数,移植其他库时需手动补充缺失的HAL库文件。关键步骤包括配置SConscript构建脚本、调整源文件包含关系及处理库依赖问题。原创 2025-06-23 17:58:04 · 324 阅读 · 0 评论 -
DS1307实时时钟模块的时间显示
摘要:该代码实现了基于DS1307实时时钟模块的时间显示和RGB灯控制功能。主要包含三个部分:(1) DS1307读写函数封装,支持BCD码与十进制转换;(2) 数码管时间显示处理,将时分秒数据分解为数码管显示缓冲;(3) RGB灯控制逻辑,通过按键切换不同显示模式和亮度档位,使用PWM调节实现呼吸灯效果。系统通过按键SW1-SW4控制LED闪烁模式、时间显示切换和RGB灯状态,具有生日日期循环显示功能。代码采用模块化设计,包含硬件抽象层和应用逻辑层。原创 2025-06-20 19:53:27 · 84 阅读 · 0 评论 -
STM32 HAL 初始化I2C启动DS1307
本文介绍了一个针对DS1307实时时钟模块的初始化函数,该函数通过验证用户自定义区域的4字节密码决定是否写入初始化数据。初始化配置包含时钟控制(1Hz方波输出)、初始时间(2021年1月1日00:00:00)和预设密码。文章指出原始代码存在时钟振荡器未启动的问题(秒寄存器CH位置1),并提供了改进方案:修改初始值为0x00,并在初始化后强制清除CH位。同时提醒注意用户自定义区域(0x08-0x0F)可能与其他功能的存储冲突风险。该方案兼顾了密码验证和时钟可靠性需求。原创 2025-06-19 22:22:44 · 463 阅读 · 0 评论 -
DS1307 读取时间示例代码 STM32 HAL
摘要:该代码实现了DS1307实时时钟(RTC)芯片的驱动功能,包含BCD码与十进制转换、初始化配置、时间读取和设置等功能。通过I2C接口通信,定义时间结构体DS1307_Time_t存储秒、分、时、日、月、年等数据。主要函数包括DS1307_Init(初始化)、DS1307_ReadTime(读取时间)和DS1307_WriteTime(设置时间),使用HAL库的I2C接口进行数据传输,并处理BCD格式与十进制格式的相互转换。代码结构清晰,包含头文件保护机制和详细的寄存器定义。原创 2025-06-11 20:21:59 · 108 阅读 · 0 评论 -
STM32G DMA串口发送接收
本文介绍了基于UART3和DMA的串口通信实现方法。系统通过串口接收RGB颜色命令(格式如"R:255,G:128,B:64"),利用空闲中断(IDLE)触发数据处理,采用DMA方式完成数据传输。解析过程使用sscanf提取RGB值并验证其有效性(0-255范围),成功则存储到rgb_color数组并返回"OK",失败返回"ERROR"。关键技术包括:IDLE中断实现不定长数据捕获、DMA传输降低CPU负载、sscanf格式化解析命令。该系统实现了原创 2025-06-11 08:42:19 · 586 阅读 · 0 评论 -
STM32 CubeMX时钟配置PWM信号输出
PWM(脉宽调制)通过调节方波的占空比控制输出功率。STM32中,定时器与CCR寄存器协同工作实现PWM:定时器计数至ARR值后复位,CCR寄存器存储比较值,当计数值小于CCR时输出高/低电平(取决于PWM模式)。示例代码展示了如何配置TIM3通道1生成50HzPWM,频率由ARR和PSC决定,占空比由CCR/ARR比值控制。通过修改CCR值可动态调整占空比,实现对电机、LED等设备的精确控制。原创 2025-05-24 00:08:11 · 964 阅读 · 0 评论