STM32普通GPIO的翻转频率取决于主频、总线时钟和GPIO配置。以72MHz主频的STM32F103为例,使用GPIOB的ODR寄存器直接写操作,理论上最大翻转频率可达36MHz(即每2个时钟周期翻转一次),但实际受代码执行效率、总线等待状态和负载电容影响,通常稳定输出10-20MHz方波。要提升频率,建议:1)使用BSRR/BRR寄存器代替ODR(避免读-改-写操作);2)开启GPIO的推挽输出、高速模式(GPIO_Speed_50MHz);3)使用DMA或定时器PWM输出(可达主频/分频,如72MHz/2=36MHz);4)避免使用HAL库的慢速函数,直接操作寄存器。若需更高频率(如100MHz+),需改用定时器PWM或专用时钟输出(MCO)。注意:GPIO翻转频率受输出电容和走线影响,实际测试需用示波器验证。
mcuku 阿沐 · 2026-08-20