[技术问答] 已解决

[复制链接]
3640|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的情况,无法触发中断

批注 2021-06-24 161122.jpg

 楼主| fcccc 发表于 2021-6-24 16:37 | 显示全部楼层
不知是什么坑
OurWay 发表于 2021-6-24 17:19 | 显示全部楼层
算不算BUG不好说。但是可以用中断的,P32有INT0的功能,映射为INT0中断是没有问题的,P52是INT1,一样的使用方法    GPIO_INT.rar (2.28 KB, 下载次数: 1)
 楼主| fcccc 发表于 2021-6-24 20:24 | 显示全部楼层
OurWay 发表于 2021-6-24 17:19
算不算BUG不好说。但是可以用中断的,P32有INT0的功能,映射为INT0中断是没有问题的,P52是INT1,一样的使 ...

是的,使用外部中断模式没问题,GPIO中断就不行.
 楼主| fcccc 发表于 2021-6-24 20:26 | 显示全部楼层
本帖最后由 fcccc 于 2021-6-24 20:45 编辑


 楼主| fcccc 发表于 2021-6-24 20:27 | 显示全部楼层
本帖最后由 fcccc 于 2021-6-24 20:47 编辑

P3.2的中断事件触发的不是GPIO234,而是EXINT0,单独弄了一个中断向量.
不能用GPIO只能用EINT0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

458

帖子

1

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