ch583外部中断可触发,但读不到中断位

我启用了PB9和PB16的外部中断,上拉输入模式,实验中程序可以触发中断进入中断函数,

但读取不到这两个引脚的中断位。

逐步调试发现寄存器中这两个引脚的中断位有被正确设置,但就是没有被GPIOB_ReadITFlagBit()读出来

工程如下

icon_rar.gifGPIOB外部中断问题.rar

第二个问题,工程相同,我在GPIOA设置了5个引脚的外部中断,均设置为上拉输入,验证中引脚1,3,4,5均正常,但引脚2无法触发。测量电压发现,引脚2无上拉电压。检查代码未发现问题,重新烧录问题未解决。下电后数十分钟重新上电并烧录,问题解决。此后未再复现。


此外,希望官网的DEMO包能有单独的更新履历文档,不然难以分清自己手上的demo包是不是最新的,也难以知道各版本demo包间都有何处不同

您好,CH582的PB8、PB9建议不要用作外部GPIO,会受PB22、PB23的影响。如果GPIO中断不够用,可以将这两个脚上的中断映射到PB22 PB23上使用。映射寄存器配置:R16_PIN_ALTERNATE |= RB_PIN_INTX;

PB16是没有GPIO中断功能的,PA、PB组各有16各脚,即编号PA/B0~15这几个脚和相关映射脚有GPIO中断功能。

问题二中的引脚2具体是哪个引脚。有部分引脚需要先关闭复用功能再作为一般GPIO使用。

感谢您最后的建议,我们争取在后期加入更新日志。现以官网更新EVT的时间来判断是否为最新EVT,EVT固定链接如下。

/downloads/CH583EVT_ZIP.html


@TECH_JW

引脚2为PA2,同时开启了如下外设:SPI0;USB0,1;2线调试;UART1;

请问数据手册中哪一小节有详细说明GPIO中断功能的可用引脚?我手上的v1.7版本(最新版)只在第7.2节中简单提了一句"芯片的部分 I/O 管脚具有中断功能,并可实现睡眠唤醒。"


可能是误测,PA2引脚可以正常用作GPIO中断源。GPIO中断相关寄存器都是16位的,只能支持AB两组引脚的前16个脚和相关映射脚。

image.png

image.png


@TECH_JW

可以确认不是误测,当时发现问题后,我通过接入引线手动将PA2上拉到了VCC,此时引脚的下降沿中断可以正常触发,

移除引线后再次测量电压,仍无上拉电压。

电路很简单,引脚接微动开关,微动另一端直接接地。


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