logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

STM32时钟树怎么看?一步理解SYSCLK、HCLK、PCLK和外设时钟配置

所谓时钟树,就是描述:MCU内部各种时钟从哪里来、经过什么倍频和分频、最终送给哪些模块。HSI│HSE│▼PLL│▼SYSCLK││▼HCLK┌───┴───┐│ │APB1 APB2│ ││ │各类外设 各类外设所以看到CubeMX复杂的时钟树时,不需要一次把所有线都看懂。时钟源 → PLL → SYSCLK → HCLK → PCLK → 外设SYSCLK↓↓HCLKHCLK = SYSCLK

文章图片
#stm32#嵌入式硬件#单片机
STM32 DMA到底解决了什么问题?从CPU搬运数据到自动传输完整解析

可以触发半传输中断。可以触发全传输中断。DMA填充前半区↓半传输中断↓CPU处理前半区DMA继续填充后半区↓全传输中断↓CPU处理后半区这是一种典型的“乒乓处理”思想。DMA持续采集;CPU分块处理;减少数据停顿;降低缓冲区被覆盖的风险。Buffer ABuffer BDMA写Buffer ACPU处理Buffer BDMA写满Buffer A后切换到Buffer BCPU开始处理Buffer A

#stm32#单片机#嵌入式硬件
ADC采集结果为什么不稳定?硬件与软件原因及STM32排查方法详解

平均滤波;滑动平均;中值滤波;限幅滤波;IIR低通;过采样;卡尔曼滤波。ADC采集结果不稳定,不一定是ADC外设本身损坏。参考电压不稳定;ADC输入悬空;信号源阻抗过大;采样时间不足;缺少模拟滤波;电源和地线干扰;PCB布局不合理;输入电压超范围;多通道之间相互串扰。ADC时钟配置错误;采样周期太短;没有执行ADC校准;读取时序不正确;通道Rank和DMA顺序错误;缓冲区数据类型错误;整数计算溢出

#stm32#嵌入式硬件#单片机
定时器、计数器和 PWM 到底是什么关系?从工作原理到 STM32 实战详解

计数就是对一个个脉冲进行累加或递减。第1个脉冲到来:CNT = 1第2个脉冲到来:CNT = 2第3个脉冲到来:CNT = 3……第100个脉冲到来:CNT = 100这里的CNT可以理解为计数器当前保存的数值。如果脉冲来自单片机内部稳定的时钟,那么计数值就可以反映经过的时间。如果脉冲来自单片机外部引脚,那么计数值就可以反映外部事件发生的次数。因此,定时和计数的区别主要不在计数器本身,而在于:用来

#stm32#嵌入式硬件#单片机
# PID算法详解:从控制原理到STM32工程实现,彻底搞懂P、I、D三部分作用

假设:100℃100%50℃误差很大。增加输出但是:100%无法继续增加。越来越大当温度接近目标:积分还保持很大输出。温度超过目标产生严重超调。积分限幅抗饱和算法条件积分计算误差↓P快速纠正当前错误I消除长期偏差D预测变化趋势↓调整输出↓让系统稳定达到目标一句话总结:P负责速度,I负责精度,D负责稳定。在STM32、PLC、变频器、电机控制、温控系统以及工业自动化设备中,PID仍然是最经典、应用最

文章图片
#算法#stm32#嵌入式硬件
# 单片机进入 HardFault 后,如何找到真正出错的代码?——STM32/Cortex-M 故障定位实战

HardFault 并不是无法解决的“玄学故障”。PCLRSPCFSRHFSRMMFARBFARELF 文件MAP 文件addr2line反汇编调用链运行日志通常就能逐步接近真正的故障原因。工程中最重要的不是让设备在 HardFault 后立刻重启,而是:在重启之前,尽可能保存完整的崩溃现场。因为只有留下现场,才能真正解决那些偶发、随机、难以复现的嵌入式故障。

文章图片
#单片机#stm32#mongodb
1.STM32103ZET6板子入门学习

操作菜单路径快捷键作用保存Ctrl+S保存当前代码编译F7编译发生变化的文件全部重编译重新编译整个工程下载程序F8将程序写入 STM32 Flash打开配置设置芯片、下载器和编译参数进入调试Ctrl+F5进入在线调试复位芯片Debug模式下点击RST重新运行已烧写的程序Ctrl + S→ F7→ 检查0 Error(s)→ F8→ 检查Verify OK第一步:连接开发板、ST-LINK和电脑第二

文章图片
#单片机#嵌入式硬件
1.STM32MP135入门级环境搭建

Windows文件资源管理器、PowerShell、VMware保存资料、运行虚拟机、运行TFTP服务器Ubuntu虚拟机解压源码、交叉编译内核开发板Linux接收新内核、写入eMMC boot分区U-BootSTM32MP>加载、校验并启动新内核Ubuntu运行在你的电脑上,CPU通常是x86-64。STM32MP135运行的是ARM架构,所以Ubuntu不能直接用普通gcc编译,必须使用ARM

#stm32#嵌入式硬件#单片机
到底了