查看: 5218|回复: 14

[求助] kl02开发板关于外部引脚中断问题

[复制链接]
  • TA的每日心情
    开心
    2016-10-25 10:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    81

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2019-6-10
    发表于 2016-9-5 11:35:28 | 显示全部楼层 |阅读模式
    本帖最后由 足球爱好者 于 2016-9-5 15:09 编辑



    走过路过的版友,有闲暇时间的帮帮小弟解答这几个问题,在这里先谢过了
    现象:
    我之前使用的引脚外部中断都是下拉中断,现在因为工程需要要使用上拉中断,但我发现当我配置外部中断时,无论我如何配置引脚,引脚都是高电平。之前觉得可能是因为引脚复用问题,但我换了多个引脚,包括从GPIOA换到GPIOB都一样。当我仿真查看寄存器时,发现PORTx_PCRn寄存器中的PS位,始终是1,清不了0.这位是控制引脚上拉状态还是下拉状态。因为这位始终是1,所以是上拉状态,因此我选择下拉产生中断没什么问题。
    问题:
    1:PS位为啥不能清0
    2:我该怎么配置可以使用上拉中断。
    3:我之前认为引脚复用是PORTx_PCRn寄存器中的MUX位控制,是否我错了?MUX位中的值2~7代表什么?那里可以看是哪一种外设功能的复用。(串口引脚我知道是要选择0x02)
    4:是否可以GPIOB1  GPIOB2(即是同一端口,多个引脚)先后产生外部中断?如果可以,那个中断服务函数怎么写?现在我只知道有这两个中断函数 void PORTB_IRQHandler()   void PORTA_IRQHandler()。

    刚刚忘了上程序了。。。

    int main(void)
    {
      SIM->SCGC5 |= 1<<10;   //打开端口B时钟
      SIM->SCGC5 |= 1<<9;    //打开端口A时钟
      exti_init();
      while(1)
      {
      }

    }

    void gpio_init(void)
    {
      配置为输入模式
    temp =GPIOA -> PDDR ;

      temp &= ~(1<<12);
      GPIOA -> PDDR = temp;

      //先清
    PORTA -> PCR[12] &= ~(PORT_PCR_MUX_MASK|PORT_PCR_IRQC_MASK | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK);
      //配置 GPIO 口,下降沿中断 , pull使能 ,选择上拉使能(引脚下啦时能产生中断)
    //PORTA -> PCR[12]|= PORT_PCR_MUX(0x01)| PORT_PCR_IRQC(0x0a)| PORT_PCR_PE_MASK|PORT_PCR_PS_MASK;
    // 配置 GPIO 口,上升沿中断 , pull使能 ,选择下拉使能
      (这种模式下,端口始终处于高电位,没办法产生中断)
      PORTA -> PCR[12]|= PORT_PCR_MUX(0x01)| PORT_PCR_IRQC(0x0a)| PORT_PCR_PE_MASK;


      NVIC_EnableIRQ(PORTA_IRQn);     //使能中断
      NVIC_SetPriority(PORTA_IRQn,2); //设置中断优先级
    }
    void PORTA_IRQHandler()
    {
      PORTA -> ISFR |= 1<<12;
      GPIO_TogglePinsOutput(GPIOB, 1u << 6);
    }





    我知道答案 目前已有14人回答

    MUX位

    MUX位

    PE位和PS位

    PE位和PS位
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-10-25 10:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    81

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2019-6-10
     楼主| 发表于 2016-9-5 11:46:53 | 显示全部楼层
    自己先顶高点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-9-5 13:22:48 | 显示全部楼层
    帮顶
    签到 签到
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24853
    最后登录
    2025-7-17
    发表于 2016-9-5 13:59:33 | 显示全部楼层
    首先GPIO的中断只是针对引脚的复用功能选择在GPIO情况下,其次看引脚到底所对应的复用功能可以在10.3.1 KL02 signal multiplexing and pin assignments中查看。
    我建议你介绍一下具体配置中断的过程,方便找出问题
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2016-9-5 14:22:58 | 显示全部楼层
    PS是上拉选择,并不是中断标志位
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2016-9-5 14:33:08 | 显示全部楼层
    上拉中断?还是上升沿中断?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-10-25 10:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    81

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2019-6-10
     楼主| 发表于 2016-9-5 15:01:29 | 显示全部楼层
    小恩GG 发表于 2016-9-5 13:59
    首先GPIO的中断只是针对引脚的复用功能选择在GPIO情况下,其次看引脚到底所对应的复用功能可以在10.3.1 KL0 ...

    版主,这个该怎么看。ALT0~3是啥意思?
    比如我 要将PAT12复用为TPM1_CH0(相对应的是ALT2)  ,那我是否要将PORTA_PCR12中的MUX位设置为0x02。

    在ALT1一栏有这三个功能:PTA12/IRQ_13/LPTMR0_ALT2  ,那我要选择其中一项该怎么办?

    PTA12引脚复用

    PTA12引脚复用

    MUX位

    MUX位
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-10-25 10:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    81

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2019-6-10
     楼主| 发表于 2016-9-5 15:02:37 | 显示全部楼层

    谢谢!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-10-25 10:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    81

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2019-6-10
     楼主| 发表于 2016-9-5 15:06:20 | 显示全部楼层
    wambob 发表于 2016-9-5 14:33
    上拉中断?还是上升沿中断?

    引脚状态配置位上拉模式时,给低电平能顺利产生中断。但配置为下啦模式时,发现那个引脚的电平一直为高,给高电平就产生不了中断了。那个PS位好像弄不到为0。所以一直位高电平。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2016-9-5 18:28:36 | 显示全部楼层
    本帖最后由 wambob 于 2016-9-5 18:30 编辑

    设置成上升沿中断就可以了,中断检测的是电平的变化,跟PS位没关系,PS 是设置管脚上拉的,设置的时候还要先设置PE,才能设置,可以上拉或不上拉
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 06:22 , Processed in 0.114401 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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