[STM32F3] HAL_GPIO_TogglePin () 函数问题

[复制链接]
69|23
cemaj 发表于 2026-10-5 18:28 | 显示全部楼层
直接操作ODR寄存器              
deliahouse887 发表于 2026-10-6 14:00 | 显示全部楼层
static inline void GPIO_TogglePins(GPIO_TypeDef *GPIOx, uint16_t pins)
{
    uint32_t odr = GPIOx->ODR;                     /* 读一次 */
    GPIOx->BSRR = ((odr & pins) << 16) | (~odr & pins);
}
bartonalfred 发表于 2026-10-6 14:52 | 显示全部楼层
先读取当前电平,然后计算哪些引脚需要置位,哪些需要复位,最后通过一次写操作完成所有引脚的状态更新。
pixhw 发表于 2026-10-6 21:20 | 显示全部楼层
HAL_GPIO_TogglePin()的设计目标是单引脚操作,多引脚场景下需采用上述替代方案,而非认为是“BUG”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部