[STM32F3] HAL_GPIO_TogglePin () 函数问题

[复制链接]
300|57
jonas222 发表于 2026-10-14 21:00 | 显示全部楼层
使用HAL_GPIO_TogglePin(),简单高效
AloneKaven 发表于 2026-10-15 12:37 | 显示全部楼层
用BSRR寄存器翻转,或者检查GPIOx-CR1的ODR位配置,确保没有误操作。
xiaoyaodz 发表于 2026-10-15 16:45 | 显示全部楼层
这个BUG是否会影响GPIO的输入输出功能?
fengm 发表于 2026-10-15 21:19 | 显示全部楼层
可以利用位带功能,将 ODR 寄存器的每一位映射到一个独立的地址上。
时光迷宫 发表于 2026-10-16 10:55 | 显示全部楼层
之前项目中也有遇到类似问题,建议改用 GPIOx->ODR ^= GPIO_Pin 来替代,它更符合多引脚切换需求。
cashrwood 发表于 2026-10-17 13:10 | 显示全部楼层
使用HAL_GPIO_WritePin()手动翻转
通过读取当前引脚状态,取反后写回,实现多引脚翻转
闪烁阴影 发表于 2026-10-17 16:55 | 显示全部楼层
用BSRR寄存器直接操作更稳妥,BSRR操作是原子的,避免了并发写ODR的问题。
wilhelmina2 发表于 2026-10-17 19:47 | 显示全部楼层
其他HAL GPIO函数有类似限制吗?
ulystronglll 发表于 2026-10-17 22:18 | 显示全部楼层
如何自定义多引脚翻转HAL函数?
51xlf 发表于 2026-10-18 12:51 | 显示全部楼层
HAL库和标准库的翻译差异有哪些?
遗忘领域 发表于 2026-10-18 13:36 | 显示全部楼层
用 BSRR 寄存器直接翻转,确保原子操作,避免竞争。
gygp 发表于 2026-10-19 14:01 | 显示全部楼层
ODR寄存器操作与HAL库冲突吗?
kkzz 发表于 2026-10-19 17:52 | 显示全部楼层
单引脚判断逻辑无法处理多引脚异质状态
uptown 发表于 2026-10-20 15:14 | 显示全部楼层
GPIO_Pin的中文表达是什么?
OceanDepths 发表于 2026-10-20 18:51 | 显示全部楼层
多引脚翻转用 GPIOx->ODR ^= GPIO_Pin;试试,这个方法支持多引脚操作。
ccook11 发表于 2026-10-20 21:40 | 显示全部楼层
继续使用 HAL_GPIO_TogglePin(),它在这种情况下是安全且高效的。
Bowclad 发表于 2026-10-22 16:35 | 显示全部楼层
老兄,你提到的这个问题我遇到过,解决方法是直接操作BSRR寄存器,确保原子操作。试试看吧。
云上漫步 发表于 2026-10-23 16:01 | 显示全部楼层
改用 GPIOx->ODR ^= GPIO_Pin;试试,这可能是多引脚同时操作导致的寄存器更新冲突。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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