硬汉嵌入式论坛

 找回密码
 立即注册
查看: 553|回复: 10
收起左侧

GPIO偶尔自己一直输出高

[复制链接]

75

主题

684

回帖

909

积分

金牌会员

积分
909
发表于 2023-11-24 00:33:05 | 显示全部楼层 |阅读模式
坛友们有没有人遇到过STM32的GPIO有时候自己输出高电平的情况?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2023-11-24 08:41:53 | 显示全部楼层
遇到过一次,程序配置错了,操作成同一个引脚了。
回复

使用道具 举报

75

主题

684

回帖

909

积分

金牌会员

积分
909
 楼主| 发表于 2023-11-24 09:10:28 | 显示全部楼层
eric2013 发表于 2023-11-24 08:41
遇到过一次,程序配置错了,操作成同一个引脚了。

那和我遇到的不大像。我的是运行了一点时间之后出现的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2023-11-24 09:37:30 | 显示全部楼层
庄永 发表于 2023-11-24 09:10
那和我遇到的不大像。我的是运行了一点时间之后出现的。

特别是指针类的操作是不是有越界的情况,也容易出现奇怪的问题。
回复

使用道具 举报

3

主题

34

回帖

43

积分

新手上路

积分
43
发表于 2023-11-24 09:46:07 | 显示全部楼层
有这么一种情况有可能会触发:有两个输出,用的是同一个port,A输出是出问题的那个输出,一般在主线程序操作,B输出是同一个port的另外一个输出,B输出在中断里会操作。两个都是用的 GPIO->ODR |= bit,和GPIO->ODR &= ~bit;的方式进行操作的。在某一刻主线操作A,想让其拉低用的是GPIO->ODR &= ~bit;在汇编层面取值了ODR的值到寄存器R1(假设保存到R1)之后,中断发生,在中断里,对B进行操作拉低了,中断结束之后,恢复到刚刚中断的地方,寄存器R1保存着B口原先的高电平,继续往下操作,最终会回写给ODR,让B口恢复高电平。当然,这种情况,你不一定是这么用的。这个思路只是“头痛医脚”的思考方式而已。还有,你操作的IO,尝试使用单纯操作拉高和拉低的寄存器的,不要直接使用涉及ODR的,可能有帮助。
回复

使用道具 举报

75

主题

684

回帖

909

积分

金牌会员

积分
909
 楼主| 发表于 2023-11-24 09:56:33 | 显示全部楼层
eric2013 发表于 2023-11-24 09:37
特别是指针类的操作是不是有越界的情况,也容易出现奇怪的问题。

还在定位,有可能就是存在一些未知的非法操作导致的
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-11-24 14:24:42 | 显示全部楼层
ldqmcu 发表于 2023-11-24 09:46
有这么一种情况有可能会触发:有两个输出,用的是同一个port,A输出是出问题的那个输出,一般在主线程序操 ...

IO操作ST不是硬件提供了原子操作吗?可能不是中断的问题。标记一下所有操作过的IO应该就可以找到了。
回复

使用道具 举报

13

主题

89

回帖

128

积分

初级会员

积分
128
发表于 2023-11-25 10:56:00 | 显示全部楼层
5L说的很有可能,这个问题之前我就遇到过很多次了!!!
回复

使用道具 举报

75

主题

684

回帖

909

积分

金牌会员

积分
909
 楼主| 发表于 2023-11-25 22:17:20 | 显示全部楼层
ldqmcu 发表于 2023-11-24 09:46
有这么一种情况有可能会触发:有两个输出,用的是同一个port,A输出是出问题的那个输出,一般在主线程序操 ...

没有,输出只有一个位置。怀疑是输出高以后由于其他原因导致任务堆栈被破坏,任务再也得不到执行。或者是干扰导致IO失效
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-12-2 16:14:05 | 显示全部楼层
庄永 发表于 2023-11-25 22:17
没有,输出只有一个位置。怀疑是输出高以后由于其他原因导致任务堆栈被破坏,任务再也得不到执行。或者是 ...

用原子操作试试看
回复

使用道具 举报

4

主题

26

回帖

38

积分

新手上路

积分
38
发表于 2023-12-4 11:46:58 | 显示全部楼层
没有遇到过,这种100%都是程序问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 11:19 , Processed in 0.311985 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表