关于CH582M GPIO PB8 和 PB9 的中断异常问题

目的:

实现 PB8 和PB9 高低电平监测,中断方式。

方法:

PB8 和 PB9 设置为上拉输入,然后读取管脚状态,如是高电平,则设置为低电平触发中断模式,如是低电平,则设置为高电平触摸中断模式。进入中断后,再根据管脚电平重新配置触发方式,然后清中断标志。

现象:

PB8 会一致不断响应 低电平,高电平无问题。PB9 会一致不断响应高中断,低电平无问题。同样代码,别的GPIO无此问题。

采用非中断模式,在TMOS task 中直接定时读取GPIO电平,也无问题。

问题:

怀疑 跟PB8 PB9  与 PB22 PB23 共用一个中断标志位有关,求解决。谢谢!

您好,建议将中断重映射,使用PB22、23引脚上的外部中断。使用PB23的话注意在ISP工具下载时将reset手工复位功能关闭。

在初始化中添加如下代码重映射。

R16_PIN_ALTERNATE |= RB_PIN_INTX;


电路板已画好,不方便更改管脚了。如果用PB8 和 PB9 中断方式,这个问题目前无法解决是吗?如这样,我就只能采取查询方式了,实时性差一些而已。问题不大。


只有登录才能回复,可以选择微信账号登录