• PY32F003F18的中断线


    PY32F003F18的中断线有30条,其中Line20~Line28保留不用,见下图:

     Line0~Line8需要配置,选择引脚和中断线连接,和GPIO引脚对应,Line9~Line15和PA9~PA15一一对应。见下图:

     

     ​​​​​​​

    外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=00B,则选择"PA0连接到中断线Line0
    外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=01B,则选择"PB0连接到中断线Line0
    外部中断选择寄存器1(EXTI_EXTICR1)中bit1:0=10B,则选择"PF0连接到中断线Line0

    外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=00B,则选择"PA1连接到中断线Line1
    外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=01B,则选择"PB1连接到中断线Line1
    外部中断选择寄存器1(EXTI_EXTICR1)中bit9:8=10B,则选择"PF1连接到中断线Line1

    外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=00B,则选择"PA2连接到中断线Line2
    外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=01B,则选择"PB2连接到中断线Line2
    外部中断选择寄存器1(EXTI_EXTICR1)中bit17:16=10B,则选择"PF2连接到中断线Line2

    外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=00B,则选择"PA3连接到中断线Line3
    外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=01B,则选择"PB3连接到中断线Line3
    外部中断选择寄存器1(EXTI_EXTICR1)中bit25:24=10B,则选择"PF3连接到中断线Line3

    外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=00B,则选择"PA4连接到中断线Line4
    外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=01B,则选择"PB4连接到中断线Line4
    外部中断选择寄存器2(EXTI_EXTICR2)中bit1:0=10B,则选择"PF4连接到中断线Line4

    外部中断选择寄存器2(EXTI_EXTICR2)中bit8=0,则选择"PA5连接到中断线Line5
    外部中断选择寄存器2(EXTI_EXTICR2)中bit8=1,则选择"PB5连接到中断线Line5

    外部中断选择寄存器2(EXTI_EXTICR2)中bit17:16=00B,则选择"PA6连接到中断线Line6
    外部中断选择寄存器2(EXTI_EXTICR2)中bit17:16=01B,则选择"PB6连接到中断线Line6

    外部中断选择寄存器2(EXTI_EXTICR2)中bit24=0,则选择"PA7连接到中断线Line7
    外部中断选择寄存器2(EXTI_EXTICR2)中bit24=1,则选择"PB7连接到中断线Line7

    外部中断选择寄存器3(EXTI_EXTICR3)中bit0=0,则选择"PA8连接到中断线Line8
    外部中断选择寄存器3(EXTI_EXTICR3)中bit0=1,则选择"PB8连接到中断线Line8

    PA9~P15和中断线Line9~Line15一一对应连接。

    GPIO通过外部中断线产生中断:

    1. #include "KeyIntrrupt.h"
    2. #include "LED.h"
    3. #include "MyGPIO.h"
    4. void Key1_Interrupt_Init(void);
    5. //函数功能:Key1引脚初始化为外部中断输入
    6. void Key1_Interrupt_Init(void)
    7. {
    8. GPIO_InitTypeDef GPIO_InitStructureure;
    9. __HAL_RCC_GPIOA_CLK_ENABLE(); //GPIOA时钟使能
    10. GPIO_InitStructureure.Pin = GPIO_PIN_12;//选择第12
    11. GPIO_InitStructureure.Pull = GPIO_PULLUP;//引脚上拉被激活
    12. // GPIO_InitStructureure.Pull = GPIO_NOPULL;//引脚上拉和下拉都没有被激活
    13. GPIO_InitStructureure.Speed = GPIO_SPEED_FREQ_MEDIUM;//配置GPIO速度为中速
    14. GPIO_InitStructureure.Mode = GPIO_MODE_IT_FALLING;//配置为下降沿检测模式
    15. HAL_GPIO_Init(GPIOA, &GPIO_InitStructureure);
    16. //根据GPIO_InitStructureure结构变量指定的参数初始化GPIOA的外设寄存器
    17. //因为使用了GPIO_MODE_IT_FALLING,所以使能了外部中断线
    18. /*
    19. __HAL_RCC_GPIOA_CLK_ENABLE(); //GPIOA时钟使能
    20. Configure_Pin_Direction_mode(GPIOA,GPIO_PIN_12,GPIO_MODE_IT_FALLING);
    21. Activate_Pull_up_or_Pull_down_for_Pin(GPIOA,GPIO_PIN_12,GPIO_PULLUP);
    22. Select_External_Interrupt_Line(GPIOA,GPIO_PIN_12);
    23. Set_EXTI_line_X_InterruptSwitch(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
    24. // Set_EXTI_line_X_EventSwitch(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
    25. Set_Rising_And_Falling_Mode(GPIO_PIN_12,GPIO_MODE_IT_FALLING);
    26. */
    27. HAL_NVIC_SetPriority(EXTI4_15_IRQn,0x03,0);
    28. //EXTI4_15_IRQn表示外部中断线4~中断线15,EXTI4_15_IRQn
    29. //设置中断优先级为0x03,0无意义,注意:0<=PreemptPriority<=3,值越大,表示中断优先级越低
    30. //Enable and set Button EXTI Interrupt to the lowest priority
    31. HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
    32. //EXTI4_15_IRQn表示外部中断线4~中断线15,EXTI4_15_IRQn
    33. //使能EXTI4_15_IRQn中断
    34. }
    35. //函数功能:GPIO4~GPIO15外部中断服务程序
    36. void EXTI4_15_IRQHandler(void)
    37. {
    38. if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_12) != 0x00u)
    39. {//"GPIO_PIN_12事件挂起标志位",当软件或者硬件产生上升沿/下降沿触发事件时,该位置位。
    40. MCU_LED_Toggle();//输出电平翻转
    41. // __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_12);//清除外部事件标志位
    42. __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_12);//清除外部事件标志位
    43. //清除"GPIO_PIN_12外部事件标志位"
    44. //当软件或者硬件产生上升沿/下降沿触发事件时,该位置位;
    45. }
    46. NVIC_ClearPendingIRQ(EXTI4_15_IRQn);//清除EXTI4_15_IRQn中断源的中断标志位
    47. }

  • 相关阅读:
    “蔚来杯“2022牛客暑期多校训练营2补题记录(DGHJKL)
    C51--串口发送中断请求
    记录--vue3中的ref,toRef,toRefs
    Day 7.UDP编程、不同主机之间用网络进行通信
    数据结构与算法_排序算法_三个高级排序算法性能对比
    【C++笔试强训】第八天
    [Codeforces] games (R1600) Part.1
    《Effective Java》学习笔记 - (3)用私有构造器或者枚举类型强化Singleton属性
    FPGA中时序和组合逻辑语法对应的时钟波形
    SpringBoot常用注解(详解)
  • 原文地址:https://blog.csdn.net/weixin_42550185/article/details/132719719