打印
[技术问答]

已解决

[复制链接]
3400|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fcccc|  楼主 | 2021-6-24 16:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fcccc 于 2021-6-24 20:46 编辑

MIMI58ZDE
使用了P3.5,P3.2两个端口连接外部按键.

P3.5下降沿可以正常触发中断服务.P3.2却不行,就很奇怪.

P3.2在仿真界面可以看到P3_PIN寄存器对应位有变化.
INTEN对应位置已经是能,
INTSRC = 4说明PIN2中断标志也有置位,但是触发不了中断服务.

NVIC也已经使能因为P3.5是完全正常的.
P3.2就是不行
请问是什么原因?@奔跑的牛


/*---------------------------------------------GPIO P3------------------------------------------------*/
    SYS->P3_MFP &= ~(SYS_MFP_P35_Msk | SYS_MFP_P34_Msk | SYS_MFP_P32_Msk );
    SYS->P3_MFP |= ( SYS_MFP_TYPE_Msk(2)|SYS_MFP_TYPE_Msk(5)|SYS_MFP_TYPE_Msk(4)
                               |SYS_MFP_P35_GPIO | SYS_MFP_P34_GPIO | SYS_MFP_P32_GPIO);

  GPIO_SetMode(P3,BIT0,GPIO_MODE_OUTPUT);
  GPIO_SetMode(P3,BIT2|BIT4|BIT5,GPIO_MODE_INPUT);
  
   P3->INTTYPE = 0;
   P3->INTEN = (BIT2)|((BIT2)<<16);
  
  P3->DBEN = BIT2|BIT4|BIT5; //input filter

   //GPIO_SET_DEBOUNCE_TIME(GPIO_DBCTL_DBCLKSRC_HCLK, GPIO_DBCTL_DBCLKSEL_8);

   NVIC_EnableIRQ(GPIO234_IRQn); //

下图是单独测试P3.2的情况,无法触发中断



使用特权

评论回复
沙发
fcccc|  楼主 | 2021-6-24 16:37 | 只看该作者
不知是什么坑

使用特权

评论回复
板凳
OurWay| | 2021-6-24 17:19 | 只看该作者
算不算BUG不好说。但是可以用中断的,P32有INT0的功能,映射为INT0中断是没有问题的,P52是INT1,一样的使用方法    GPIO_INT.rar (2.28 KB)

使用特权

评论回复
地板
fcccc|  楼主 | 2021-6-24 20:24 | 只看该作者
OurWay 发表于 2021-6-24 17:19
算不算BUG不好说。但是可以用中断的,P32有INT0的功能,映射为INT0中断是没有问题的,P52是INT1,一样的使 ...

是的,使用外部中断模式没问题,GPIO中断就不行.

使用特权

评论回复
5
fcccc|  楼主 | 2021-6-24 20:26 | 只看该作者
本帖最后由 fcccc 于 2021-6-24 20:45 编辑


使用特权

评论回复
6
fcccc|  楼主 | 2021-6-24 20:27 | 只看该作者
本帖最后由 fcccc 于 2021-6-24 20:47 编辑

P3.2的中断事件触发的不是GPIO234,而是EXINT0,单独弄了一个中断向量.
不能用GPIO只能用EINT0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

452

帖子

1

粉丝