<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/btzhy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; btzhy]]></copyright><item><title><![CDATA[STM32单片机：定时器重载，更新事件，更新中断]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/149725752</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/149725752</guid><author>btzhy</author><pubDate>Mon, 08 Dec 2025 10:49:24 +0800</pubDate><description><![CDATA[摘要：本文分析了STM32单片机中基本/通用/高级定时器的共性功能，重点阐述了定时器重载、更新事件与更新中断的交互关系。通过寄存器配置（TIMx_CR1.ARPE/UDIS/URS）控制影子寄存器（TIMx_ARR_shadow/PSC_shadow）的加载时机，并详细说明了更新事件触发条件（计数器溢出、UG置位、从模式信号）与中断产生的关联机制，最后用表格总结了不同寄存器配置组合下的工作模式差异。（149字）]]></description><category></category></item><item><title><![CDATA[STM32单片机：基本定时器应用：单脉冲模式(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/154410234</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/154410234</guid><author>btzhy</author><pubDate>Sat, 22 Nov 2025 11:05:42 +0800</pubDate><description><![CDATA[摘要：本文介绍了STM32基本定时器TIM6的单脉冲模式应用。通过配置TIM6为单脉冲工作方式，实现按键控制LED点亮500ms后自动熄灭的功能。系统时钟配置为12.288MHz，定时器分频后获得12kHz时钟，设置6000计数值实现500ms定时。当PA1按键按下时，PC6输出低电平点亮LED并启动定时器，定时结束后在中断服务程序中将LED熄灭。该方案展示了基本定时器单脉冲模式的典型应用场景和实现方法。]]></description><category></category></item><item><title><![CDATA[STM32单片机：基本定时器应用：PWM 生成(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/152312484</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/152312484</guid><author>btzhy</author><pubDate>Sat, 11 Oct 2025 12:26:20 +0800</pubDate><description><![CDATA[本文探讨了如何利用STM32基本定时器TIM6模拟PWM输出功能。虽然基本定时器没有硬件PWM功能，但通过软件操作自动重装载寄存器(TIMx_ARR)和影子寄存器机制，可以实现周期10ms、占空比25%的PWM波形输出。具体实现步骤包括：配置定时器时钟为2.048MHz，设置高电平2.5ms(计数值5120)和低电平7.5ms(计数值15360)，利用预加载功能交替更新ARR值，并在中断服务程序中切换GPIO输出电平。这种方法虽然时效性不如硬件PWM，但能帮助深入理解定时器工作原理。]]></description><category></category></item><item><title><![CDATA[STM32单片机：基本定时器应用：精确定时(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/151926500</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/151926500</guid><author>btzhy</author><pubDate>Mon, 29 Sep 2025 10:10:49 +0800</pubDate><description><![CDATA[摘要：本文介绍了STM32单片机基本定时器的应用方法。通过配置TIM6定时器实现10ms精确定时中断，在中断服务程序中设置计数器，主程序根据计数器标志位实现200ms周期的流水灯控制。详细说明了定时器时钟配置（36.864MHz分频至3.6864MHz）、寄存器设置（ARR=36864实现10ms中断）及中断处理流程，展示了如何利用基本定时器为系统提供精确的时间基准。实验采用STM32L431RCT6芯片，通过PC6-PC9控制LED实现流水灯效果。]]></description><category></category></item><item><title><![CDATA[STM32单片机：外设时钟(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/152217861</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/152217861</guid><author>btzhy</author><pubDate>Sun, 28 Sep 2025 16:02:37 +0800</pubDate><description><![CDATA[摘要：STM32L4xx系列单片机通过SYSCLK系统时钟源(HSE/HSI16/MSI/PLLCLK)生成三个主要外设时钟：AHB-HCLK、APB1-PCLK1和APB2-PCLK2。这些时钟通过分频寄存器(RCC_CFGR)配置分频系数，并经特定使能寄存器(RCC_AHBxENR/RCC_APBxENR)控制各外设时钟。例如，要使能TIM2定时器时钟，需设置RCC_APB1ENR1寄存器的TIM2EN位。具体外设时钟源需查阅芯片手册确认。]]></description><category></category></item><item><title><![CDATA[STM32单片机：基本定时器(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/150162214</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/150162214</guid><author>btzhy</author><pubDate>Sun, 21 Sep 2025 11:53:44 +0800</pubDate><description><![CDATA[基本定时器通过16位计数器(TIMx_CNT)、预分频器(TIMx_PSC)和自动重载寄存器(TIMx_ARR)实现定时功能。计数器溢出时产生更新事件/中断，定时时间由ARR值决定。修改ARR有三种方式：1)立即加载(ARPE=0)，数值直接写入影子寄存器；2)预加载(ARPE=1)，更新事件后传输到影子寄存器；3)手动加载，通过设置控制位触发数据加载但不产生中断。这三种方式通过控制寄存器(TIMx_CR1)的ARPE位和事件寄存器(TIMx_EGR)实现不同的定时控制需求。]]></description><category></category></item><item><title><![CDATA[STM32单片机：PLL编程(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/149448119</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/149448119</guid><author>btzhy</author><pubDate>Mon, 21 Jul 2025 14:16:44 +0800</pubDate><description><![CDATA[STM32L4x系列芯片通过内部PLL电路实现时钟倍频，将4-16MHz输入频率提升至最高80MHz。芯片提供2-3个PLL模块（PLL/PLLSAI1/PLLSAI2），每个包含倍频器和分频器，支持8-86倍频系数和2-31/2/4/6/8分频选项。配置时需先禁用PLL，修改参数后重新启用并等待稳定。通过特定寄存器控制输入时钟源选择、分频系数和输出使能，确保系统各模块获得所需时钟频率。]]></description><category></category></item><item><title><![CDATA[STM32单片机：MSI(内部多频率时钟)和HSI48的编程(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148411906</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148411906</guid><author>btzhy</author><pubDate>Fri, 18 Jul 2025 15:52:50 +0800</pubDate><description><![CDATA[摘要：MSI时钟由内部RC振荡器产生，频率范围100kHz-48MHz可调，默认4MHz，适用于低功耗场景和系统时钟备份。MSI可通过LSE校准实现高精度，支持USBFS和PLL工作模式。HSI48是48MHz内部RC振荡器，专为USB等外设设计，可通过CRS系统动态调频。两种时钟均支持软件控制开关，提供低成本、低功耗的时钟解决方案。（150字）]]></description><category></category></item><item><title><![CDATA[STM32单片机：外设电源监测（PVM）(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148724740</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148724740</guid><author>btzhy</author><pubDate>Mon, 23 Jun 2025 18:44:50 +0800</pubDate><description><![CDATA[外设电压监测(PVM)系统通过4个独立的监测通道(PVM1-4)对VDDA、VDDIO2和VDDUSB等独立电源进行电压监测。每个PVM通道具有固定阈值电压，当电源电压低于阈值时置位标志位并触发中断。PVM可在低功耗模式下工作，并唤醒系统。使用独立电源前需先启用对应PVM并确认电源有效：对VDDUSB需启用PVM1，VDDIO2需启用PVM2，VDDA需启用PVM3或4。通过设置控制寄存器解除电源隔离后才能使用相应外设。该系统确保了独立电源供电外设的安全可靠运行。]]></description><category></category></item><item><title><![CDATA[STM32单片机：电源监测(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148434594</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148434594</guid><author>btzhy</author><pubDate>Mon, 16 Jun 2025 11:35:39 +0800</pubDate><description><![CDATA[摘要：POR/PDR/BOR芯片集成电源管理功能，POR确保上电稳定初始化，PDR处理电源中断，BOR防止欠压运行且不可禁用。BOR阈值可编程设置（1.7V典型值），具有20mV迟滞避免频繁复位。PVD监测VDD电压（2.15V典型阈值），提供100mV迟滞和中断功能，通过EXTI16触发电压异常事件。这些机制共同保障系统电源稳定性，防止电压波动导致异常运行。（150字）]]></description><category></category></item><item><title><![CDATA[STM32单片机：电源管理（三）(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148625352</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148625352</guid><author>btzhy</author><pubDate>Fri, 13 Jun 2025 16:48:28 +0800</pubDate><description><![CDATA[摘要：电压稳压器采用双线性稳压器设计，主稳压器(MR)和低功率稳压器(LPR)协同工作，在不同工作模式下动态调整VCORE电压(1.2V或1.0V)以优化功耗。运行/睡眠模式由MR供电，低功耗模式切换至LPR。外部SMPS可降低50%以上功耗，需满足VDD12≥VCORE+50mV的接入条件。动态电压管理通过VOS位切换电压范围，范围1(1.2V/80MHz)提供高性能，范围2(1.0V/26MHz)实现低功耗，切换时需同步调整系统频率和闪存等待状态。]]></description><category></category></item><item><title><![CDATA[STM32单片机：电源管理（二）(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148424393</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148424393</guid><author>btzhy</author><pubDate>Wed, 11 Jun 2025 16:11:07 +0800</pubDate><description><![CDATA[摘要：STM32L4系列芯片采用多电源域设计，模拟外设（ADC/DAC等）由独立VDDA供电，可通过滤波降低噪声；USB和LCD模块分别采用独立电源；VBAT引脚支持电池备份供电RTC功能。关键设计包括：模拟基准电压选择、电源隔离控制、电池充电管理等。各电源域需遵循特定配置规则，如USB启用需设置PWR_CR2寄存器，备份域访问需解锁操作等。该设计提升了信号精度和系统可靠性，同时支持低功耗应用场景。]]></description><category></category></item><item><title><![CDATA[STM32单片机：电源管理（一）(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148412142</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148412142</guid><author>btzhy</author><pubDate>Mon, 09 Jun 2025 21:42:17 +0800</pubDate><description><![CDATA[STM32L4系列芯片采用多电源架构：VDD（1.71-3.6V）为主电源，需优先供电；专用外围设备（ADC/DAC/USB/LCD等）需独立电源（VDDA/VDDUSB/VLCD），不使用时建议连接至VDD；VBAT（1.55-3.6V）为备用电源；VREF+基准电压需根据VDDA电压配置。芯片内部稳压器为内核供电，部分小封装芯片可能缺少专用电源引脚。电源管理需注意不同外设的电压范围要求及引脚复用情况。]]></description><category></category></item><item><title><![CDATA[STM32单片机：HSE(外部高速时钟)的编程(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148357789</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148357789</guid><author>btzhy</author><pubDate>Thu, 05 Jun 2025 16:25:03 +0800</pubDate><description><![CDATA[摘要：HSE时钟源支持4-48MHz外部晶体或谐振器，以及外部时钟输入。通过设置RCC_CR寄存器的HSEON位开启HSE，HSERDY位指示时钟稳定状态。外部时钟模式需将HSEBYP置1，输入信号占空比40-60%。典型启动流程包括使能HSEON位和等待HSERDY就绪标志。代码示例展示了通过寄存器操作实现HSE初始化的基本步骤。]]></description><category></category></item><item><title><![CDATA[STM32单片机：HSI16(内部16MHz高速时钟)的编程(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148363637</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148363637</guid><author>btzhy</author><pubDate>Wed, 04 Jun 2025 09:32:23 +0800</pubDate><description><![CDATA[HSI16是STM32内置的16MHz RC振荡器，具有低成本、快速启动的优势，但精度低于外部晶振。出厂时校准至1%精度，可通过寄存器调整频率。HSI16可作为停止模式唤醒时钟或HSE故障备用时钟。启动代码示例展示了如何使能HSI16并检测其就绪状态。该时钟源适合对成本敏感但精度要求不高的应用场景。]]></description><category></category></item><item><title><![CDATA[STM32单片机：LSE(外部低速时钟)的编程(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148350691</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148350691</guid><author>btzhy</author><pubDate>Mon, 02 Jun 2025 08:52:33 +0800</pubDate><description><![CDATA[摘要：STM32的LSE（32.768kHz低速外部时钟）为RTC提供低功耗高精度时钟源。通过RCC_BDCR寄存器控制LSE的开关（LSEON位）和驱动强度（LSEDRV位），建议先用最高驱动能力启动后再降低功耗。LSERDY标志指示时钟稳定，LSESYSDIS位可限制LSE仅用于RTC。使用前需解除寄存器写保护（设置PWR_CR1中的DBP位）。代码示例展示了如何使能LSE并检测其稳定状态，其中包含寄存器操作和等待循环。注意备份域寄存器的特殊复位特性。（150字）]]></description><category></category></item><item><title><![CDATA[STM32单片机：时钟系统之时钟源(STM32L4xx)]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148346302</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148346302</guid><author>btzhy</author><pubDate>Sat, 31 May 2025 09:13:50 +0800</pubDate><description><![CDATA[本文主要介绍STM32L41xxx/42xxx/43xxx/44xxx/45xxx/46xxx系列的时钟系统。STM32L431单片机包含内部和外部两类时钟源：内部时钟包括LSI（32kHz）、HSI16（16MHz）、HSI48（48MHz）和可调频率的MSI（100kHz-48MHz）；外部时钟包含LSE（32.768kHz）和HSE（4-48MHz）。通过PLL可将MSI、HSI16或HSE倍频至最高80MHz作为系统时钟SYSCLK。所有时钟可通过PA8引脚输出检测。内部时钟启动快但精度较低，外部时]]></description><category></category></item><item><title><![CDATA[STM32单片机：GPIO编程]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/148202155</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/148202155</guid><author>btzhy</author><pubDate>Mon, 26 May 2025 10:45:13 +0800</pubDate><description><![CDATA[本文详细介绍了STM32L431单片机GPIO编程的配置方法。首先说明GPIO相关11个寄存器的功能，包括时钟使能、工作模式、复用功能等关键寄存器。然后以PA8引脚配置为例，分步骤讲解：1)使能GPIOA时钟；2)设置复用功能模式；3)配置MCO时钟输出功能；4)选择开漏输出类型；5)设定超高速输出速度；6)配置上拉电阻。每个步骤均给出寄存器地址定义和具体配置代码，通过位操作实现对寄存器的精确控制。该示例完整展示了STM32 GPIO从寄存器访问到功能配置的全过程，为开发者提供了可参考的实现方法。]]></description><category></category></item><item><title><![CDATA[STM32单片机：位操作的方法与技巧]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/145721739</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/145721739</guid><author>btzhy</author><pubDate>Wed, 19 Feb 2025 10:48:57 +0800</pubDate><description><![CDATA[本文介绍了单片机开发中常用的位操作宏定义方法：1. BIT(x)宏用于将指定位置1；2. BITS(start,end)宏实现连续位置1；3. BITS_SET(x,val)宏实现从指定位置开始设置数值；4. BITS_GET(start,end,val)宏用于提取指定区间数据并右对齐。通过实例详细讲解了各个宏的使用方法及其实现原理，包括置位、清零等操作，帮助开发者高效完成寄存器读写操作。这些位操作技巧能够显著提升单片机开发效率。]]></description><category></category></item><item><title><![CDATA[STM32单片机：直接访问寄存器的方法]]></title><link>https://blog.youkuaiyun.com/btzhy/article/details/145634136</link><guid>https://blog.youkuaiyun.com/btzhy/article/details/145634136</guid><author>btzhy</author><pubDate>Fri, 14 Feb 2025 15:13:52 +0800</pubDate><description><![CDATA[本文介绍了STM32单片机通过直接访问寄存器控制GPIO端口的方法。首先需要获取GPIOA基地址(0x48000000)，并根据寄存器偏移量定义结构体类型GPIO_TypeDef，其中包含MODER、OTYPER等控制寄存器。结构体成员需用volatile修饰以保证实时硬件操作。通过定义结构指针GPIOA指向基地址，即可用GPIOA-&gt;ODR=0x12345678进行数据写入，用GPIOA-&gt;IDR读取端口数据。该方法适用于STM32所有外设寄存器的操作，是底层开发的基础技能。]]></description><category></category></item></channel></rss>