
stm32学习笔记
文章平均质量分 84
金色光环
景和知晴,岁岁长青。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于野火提供的freemodbus程序移植过程中STM32CubeMX代码覆盖问题解决/moudbus封装(附源码)
STM32CubeMX代码保护与封装策略 问题:CubeMX重新生成代码会覆盖用户自定义代码,破坏项目功能。 解决方案: 代码保护:所有自定义代码必须放在USER CODE BEGIN/END注释块内 函数封装: 对需要修改的MX生成函数(如MX_USART1_UART_Init)创建自定义封装函数 在MX生成函数中调用封装函数 文件管理:删除手动修改的BSP文件,改用CubeMX生成版本 配置优化:正确设置定时器、USART和GPIO参数 关键实践: 通过封装函数实现参数自定义 保持CubeMX生成代码与原创 2025-08-13 16:44:52 · 495 阅读 · 0 评论 -
ad7708手册理解以及stm32驱动ad7708的代码实现(附源码)
位7-4: 通道选择 (CH3-CH0)位3: 极性选择 (B/U)位2-0: ADC范围位这是对ADCCON3 寄存器中 U/B‾B位的功能说明,用于配置ADC(模数转换器)的编码模式(单极性/双极性)位7: 斩波使能 (CHOP)位6-4: 滤波器选择 (FS2-FS0)位3-0: 输出数据率 (ODR3-ODR0)原创 2025-08-13 09:51:12 · 769 阅读 · 0 评论 -
stm32/gd32驱动DAC8830(附源码)
16位分辨率2.7V至5.5V单电源供电极低功耗:3V供电时为15μW高精度,积分非线性(INL):1 LSB低噪声:10 nV/√Hz快速建立时间:1.0μS高速SPI™接口,最高可达50MHz复位至零代码施密特触发器输入,用于直接光耦合器接口工业标准引脚配置。原创 2025-08-04 10:05:07 · 2215 阅读 · 0 评论 -
gd32modbus从机移植
将STM32F103工程从使用串口2(PA2/PA3)改为串口1(PA9/PA10),485控制引脚从PA1改为PC9。我已经成功将您的STM32F103工程从串口2改为串口1,并修改了相应的引脚配置。原创 2025-08-01 17:03:24 · 780 阅读 · 0 评论 -
基于野火的freemodbus从机程序移植成功现象记录(含源码)并解决了Timeout error问题
摘要:文章记录了将野火Modbus从机程序移植到STM32F103RE开发板的过程。作者遇到了连接超时问题,排查发现与ModbusPoll的超时设置(1000ms可连接,200ms则失败)有关。移植主要修改了芯片型号、控制引脚(PC2→PA1)和寄存器起始地址(1→0),并成功测试了多个Modbus功能码(01、02、03、04、15、16、5/6)的通信。实验现象和通信数据均被详细记录,为后续开发提供参考。原创 2025-08-01 14:37:14 · 496 阅读 · 0 评论 -
【STM32-HAL】 SPI通信与Flash数据写入实战
页编程指令码是0x02,后面跟着24位地址(往哪里写地址就发谁的地址),再后面是发要写入的数据,一次性可以写多个数据。首先声明数组,用于存放要发送的数据。先发送读取命令,然后接收数据。读取数据的指令码是0x03,先发0x03,后面跟24位地址,再往后从总线上读取数据。扇区擦除的指令码是0x20,所以首先发送0x20,后面接着24位的扇区首地址。用于通过 SPI 总线同时进行发送和接收数据操作,返回。类型状态值 ,作用为“发送同时接收”。类型状态值 ,作用为“发送”。类型状态值 ,作用为“接收”。原创 2025-07-30 16:34:38 · 937 阅读 · 0 评论 -
【学习笔记】AD7708/18(1)-理解官网的参考代码
AD7708、AD7718是适合低频测量应用的完整模拟前端。AD7718内置一个含PGA的24位Σ-Δ ADC,可配置为4/5个全差分输入通道或8/10个伪差分输入通道。该器件上的两个引脚可配置为模拟输入或基准电压输入。AD7708是AD7718的16位版本。利用这些ADC,可以直接转换20mV至2.56V范围的输入信号,支持传感器信号直接输入,无需进行信号调理。原创 2025-07-28 16:30:11 · 938 阅读 · 0 评论 -
【stm32-hal】ADC模拟-数字转换技术
STM32 ADC原理与应用摘要 STM32通过逐次逼近法(SAR)实现模拟信号到数字信号的转换。12位ADC可将0-3.3V电压转换为0-4095的数字量,分辨率约0.8mV。配置时需注意APB2时钟分频(不超过14MHz),并通过CubeMX设置ADC通道。程序实现需包含校准步骤(HAL_ADCEx_Calibration_Start),使用HAL_ADC_Start启动转换,HAL_ADC_PollForConversion等待完成,HAL_ADC_GetValue读取结果。电压值计算为:ADC值/4原创 2025-07-23 09:22:28 · 1258 阅读 · 0 评论 -
stm32-Modbus主机移植程序理解以及实战
作者在成功移植FreeModbus主机例程后,对其代码实现进行了深入分析。重点解析了main()函数中的初始化流程和主循环设计,针对HAL_Delay导致的按键响应延迟问题,提出了基于状态机的非阻塞式解决方案。同时详细剖析了eMBMasterPoll()函数的工作原理,包括事件处理机制、帧接收校验和异常处理流程。文章通过代码片段和表格对比,展示了如何优化Modbus主机轮询机制,使其在不占用CPU的情况下实现定时任务,为嵌入式系统中的Modbus主机实现提供了实用调试经验和性能优化方原创 2025-07-14 14:44:56 · 617 阅读 · 0 评论 -
【stm32学习笔记】stm32时钟树讲解
本文通过视频教程笔记解析了STM32时钟树的工作原理。从微观层面解释了时钟信号的必要性——通过边缘触发器规避门电路运算中的混乱状态,确保寄存器数据稳定。在外设层面,时钟信号为各种设备提供精确计时。STM32芯片采用AHB总线结构(72MHz主频),通过分频器为处理器内核和外设(如GPIO、串口等)提供不同频率的时钟信号(PCLK),定时器则通过倍频器获得更高频率。文章简要概述了时钟树的分频机制及其在芯片中的层级结构。原创 2025-07-09 17:09:24 · 857 阅读 · 0 评论 -
stm32与tp-linkv2接线、解决识别不到芯片问题
调试STM32时遇到"no target connected"问题,按照STLINK-V3SET文档接线无效。解决方法是调整供电连接:将STM32的3.3V改接STLINK的脚1(原接脚19),其他SWDCLK(脚7)、SWDIO(脚9)和GND(脚20/4)保持不变。最终发现杜邦线接触不良,按压接线处后成功识别芯片。调试过程表明供电方式和连接可靠性都会影响ST-Link的识别效果。原创 2025-07-07 14:16:03 · 418 阅读 · 0 评论 -
stm32使用rs485进行串口调试
本文介绍了如何实现RS485收发数据的完整方案。首先通过重定向printf到USART2实现串口输出功能,然后封装带方向控制的RS485_Printf函数,确保在发送数据前将方向引脚置为发送模式,发送完成后立即切换回接收模式。文章详细说明了缓冲区管理、DMA传输、中断处理等关键实现细节,并提供了完整的代码示例。特别注意了方向控制时序、缓冲区大小设置和中断安全等问题。该方案支持标准的printf格式化输出,包括浮点数显示,可通过RS485总线可靠地传输数据。原创 2025-07-02 16:46:02 · 355 阅读 · 0 评论 -
STM32 rs485实现中断DMA模式收发不定长数据
【【工作STM32】第10集 STM32串口DMA模式与收发不定长数据 | keysking的stm32教程】在STM32F103上使用TD301D485H模块通过USB转485/422串口线与电脑通信。由于485是半双工通信,需要在发送和接收时控制方向引脚(CON)。rs485和教程中的串口使用时候的区别就是多了CON控制方向引脚。使用cubemx配置。原创 2025-06-30 17:07:45 · 414 阅读 · 0 评论 -
解决了windows更新后,keil编译卡顿,keil编译速度特别慢问题
通过这篇解决了,win+R后,输入msconfig回车,在系统配置窗口先点击服务,再勾选“隐藏所有Microsoft服务”,然后点全部禁用,重启之后就好了,keil的编译速度就正常了。- 在 `msconfig` 中**分批启用**非 Microsoft 服务并重启,观察 Keil 速度变化,定位具体冲突的服务。- **服务行为变化**:Windows 更新可能修改了系统调度策略,导致某些后台服务优先级异常升高,干扰 Keil 的实时编译任务。### **为什么禁用非 Microsoft 服务有效?原创 2025-06-19 09:51:39 · 1724 阅读 · 3 评论 -
1.STM32H750基本定时器实验
使用定时器6,实现500ms定时器更新中断,在中断中反转LED0。带入PSC+1=7200。关键代码:Timer.c。得ARR+1=5000。原创 2025-04-24 15:27:26 · 259 阅读 · 0 评论