基础理论


中断函数名字可以在启动文件里查找

  EXPORT  WWDGT_IRQHandler                    [WEAK]EXPORT  LVD_IRQHandler                      [WEAK]EXPORT  TAMPER_IRQHandler                   [WEAK]EXPORT  RTC_IRQHandler                      [WEAK]EXPORT  FMC_IRQHandler                      [WEAK]EXPORT  RCU_IRQHandler                      [WEAK]EXPORT  EXTI0_IRQHandler                    [WEAK]EXPORT  EXTI1_IRQHandler                    [WEAK]EXPORT  EXTI2_IRQHandler                    [WEAK]EXPORT  EXTI3_IRQHandler                    [WEAK]EXPORT  EXTI4_IRQHandler                    [WEAK]EXPORT  DMA0_Channel0_IRQHandler            [WEAK]EXPORT  DMA0_Channel1_IRQHandler            [WEAK]EXPORT  DMA0_Channel2_IRQHandler            [WEAK]EXPORT  DMA0_Channel3_IRQHandler            [WEAK]EXPORT  DMA0_Channel4_IRQHandler            [WEAK]EXPORT  DMA0_Channel5_IRQHandler            [WEAK]EXPORT  DMA0_Channel6_IRQHandler            [WEAK]EXPORT  ADC0_1_IRQHandler                   [WEAK]EXPORT  USBD_HP_CAN0_TX_IRQHandler          [WEAK]EXPORT  USBD_LP_CAN0_RX0_IRQHandler         [WEAK]EXPORT  CAN0_RX1_IRQHandler                 [WEAK]EXPORT  CAN0_EWMC_IRQHandler                [WEAK]EXPORT  EXTI5_9_IRQHandler                  [WEAK]EXPORT  TIMER0_BRK_IRQHandler               [WEAK]EXPORT  TIMER0_UP_IRQHandler                [WEAK]EXPORT  TIMER0_TRG_CMT_IRQHandler           [WEAK]EXPORT  TIMER0_Channel_IRQHandler           [WEAK]EXPORT  TIMER1_IRQHandler                   [WEAK]EXPORT  TIMER2_IRQHandler                   [WEAK]EXPORT  TIMER3_IRQHandler                   [WEAK]EXPORT  I2C0_EV_IRQHandler                  [WEAK]EXPORT  I2C0_ER_IRQHandler                  [WEAK]EXPORT  I2C1_EV_IRQHandler                  [WEAK]EXPORT  I2C1_ER_IRQHandler                  [WEAK]EXPORT  SPI0_IRQHandler                     [WEAK]EXPORT  SPI1_IRQHandler                     [WEAK]EXPORT  USART0_IRQHandler                   [WEAK]EXPORT  USART1_IRQHandler                   [WEAK]EXPORT  USART2_IRQHandler                   [WEAK]EXPORT  EXTI10_15_IRQHandler                [WEAK]EXPORT  RTC_Alarm_IRQHandler                [WEAK]EXPORT  USBD_WKUP_IRQHandler                [WEAK]EXPORT  EXMC_IRQHandler                     [WEAK]

2.代码实现

2.1 gpio初始化

/*全局变量中断触发标志
*/
volatile  uint8_t exti_flag=0;
/*GPIO初始化函数*/
static void exit_gpio_init(void)
{/* 使能时钟 */rcu_periph_clock_enable(RCU_GPIOA);/* 配置gpio工作模式和速度 */gpio_init(GPIOA, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
}

2.2 外部中断初始化

void key_exti_init(void)
{/*使能复用功能时钟 */rcu_periph_clock_enable(RCU_AF);//设置优先级nvic_irq_enable(EXTI0_IRQn, 2U, 2U);/* 设置中断线*/gpio_exti_source_select(GPIO_PORT_SOURCE_GPIOA, GPIO_PIN_SOURCE_0);/* 设置中断线和中断边沿 */exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_RISING);//清除中断标记exti_interrupt_flag_clear(EXTI_0);
}

2.3 外部中断处理函数

/*外部中断处理函数
*/
void EXTI0_IRQHandler(void)
{//判定是否是外部中断线0if (RESET != exti_interrupt_flag_get(EXTI_0)) {exti_flag=SET;//清除中断标志exti_interrupt_flag_clear(EXTI_0);}
}

2.4 测试使用函数


#include "gd32f10x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "bsp_exti.h"
#include "bsp_uart.h"
#include "string.h"int main(void)
{/* 配置系统时钟 */  systick_config();/* 设置中断分组*/nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);/* gpio时钟使能*/rcu_periph_clock_enable(RCU_GPIOB);// LED gpio 初始化gpio_init(GPIOB,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_13);//串口初始化usart_config();//gpio初始化exit_gpio_init();//开启中断PA0 上升沿触发key_exti_init();while(1){gpio_bit_set(GPIOB,GPIO_PIN_13);delay_1ms(50);gpio_bit_reset(GPIOB,GPIO_PIN_13);delay_1ms(50);if(SET==exti_flag){printf("hello exti\r\n");exti_flag=RESET;}}
}

测试图

11. GD32F103C8T6 入门教程-外部中断相关推荐

  1. 20. GD32F103C8T6入门教程-adc使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组

    adc 使用教程6-使用外部中断IT11触发启动adc规则通道,使用外中断IT15触发注入组 ADC支持18个多路通道,可以把转换组织成两组:一个规则组通道和一个注入组通道 规则组,可以按照特定的序列 ...

  2. 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0

    adc 使用教程6-外部中断线11触发adc0 使用外部中断线11 触发ADC开始采集数据,PA11 gpio 1.初始化时钟和定义全局变量 /*保存ADC值*/ uint32_t adc_value ...

  3. 24. GD32F103C8T6入门教程-IAP升级教程

    GD32f103C8T6 IAP 升级教程 参考stm32的IAP升级原理 IAP测试源码 GD32和stm32的内核都是一样的,又因为IAP升级主要涉及升级的路径之和内核先关,所以gd32和stm3 ...

  4. (五)DSP28335基础教程——外部中断控制(按键触发)

    0 前言 本期实验目标:采用外部中断方式响应按键触发,实现LED电平反转. 外部中断是DSP十分常用的功能,通常用来响应一些控制操作,比如判断按键是否按下,传感器是否接收到信号等等.那么通过该例程,大 ...

  5. 17. GD32F103C8T6入门教程-adc 使用教程2-dma+连续扫描方式采集数据++dma中断通知

    adc 使用教程3-dma方式采集数据+dma中断通知 adc 的扫描模式就是把配置了规则或注入通道按照配置的顺序采集一轮 adc 的连续转换模式就是把配置了规则或注入通道按照配置的顺序采集N轮 1. ...

  6. 14. GD32F103C8T6入门教程-Systick定时器

    1.简介 Cortex‐M3 处理器内部包含了一个简单的定时器.因为所有的 CM3 芯片都带有这个定时器,软件在不同 CM3 器件间的移植工作得以化简.该定时器的时钟源可以是内部时钟,或者是外部时钟. ...

  7. 22. GD32F103C8T6入门教程-RTC的时间设置、读取日历转换

    例程:RTC的时间设置.读取日历转换 头文件 #ifndef __BSP_RTC_H__ #define __BSP_RTC_H__#include "gd32f10x.h" #i ...

  8. 18. GD32F103C8T6入门教程-adc-使用教程5-定时器TIM2更新事件触发adc0

    adc 使用教程5-定时器TIM2更新事件触发adc0 但是本实验出现了一个异常,单片机大概路出现更新事件没有启动ADC转换,可是没有找到处理办法,但是定时器的是正常工作LED灯闪烁 1.使能各种时钟 ...

  9. 26. GD32F103C8T6入门教程-CAN外设回环测试

    1.基础知识 相关stm32CAN外设 外设特征: 3个发送邮箱 2个深度为3个邮箱的接收FIFO 自动重传 自动唤醒 发送.接收时间戳 最大速率1Mbps 3种工作模式 睡眠模式:可以检车总线状态自 ...

最新文章

  1. [zz]ZeroMQ 的模式
  2. 运维老鸟谈生产场景如何对linux系统进行分区?
  3. 1805b: Coronavirus Spike Protein Binder Design 寻找蛋白质阻止新冠病毒感染人类细胞
  4. 烂泥:为KVM虚拟机添加网卡
  5. ST_LINK/V2 SWIM和SWD、JTAG下载口说明
  6. python pd Series 添加行_Python数据分析与挖掘的常用工具
  7. 对中级Linux用户有用的20个命令
  8. leetcode Best Time to Buy and Sell Stock专题
  9. php header readfile,采用header定义为文件然后readfile下载
  10. 计算机网络监控,计算机网络连接监控系统.doc
  11. 大数据Hadoop之——Hadoop图形化管理系统Hue(Hue环境部署)
  12. Windows下的字符集转换(ASCII、UICODE、UTF8、GB2312和BIG5互转)
  13. 4月上旬国内域名商净增量Top10:联动天下跻身第10
  14. vue常用方法封装-一键安装使用(赠送免费工具)
  15. Windows 10 64bit 安装dotnetfx 3.5出错的解决办法(备忘)
  16. 微信小程序接入腾讯云的对象存储
  17. 解决win10 图标 显示 小白纸
  18. 微信小程序 富文本 换行问题 文本溢出使用省略号
  19. 华为和H3C命令对比
  20. “数字化”主导大型商超生死局|钛媒体深度

热门文章

  1. nsdictionary获取值_获得nsdictionary值
  2. endnote怎么和word关联_把Endnote装进大脑:行走的文献管理者
  3. vs2019中如何创建qt项目_Qt在vs2019中使用及设置方法
  4. bootstrap框架菜单栏颜色设置_Bootstrap Icons - bootstrap专用的漂亮图标库,可以免费商用...
  5. python换算消费品价格,做折实
  6. python报错:Cannot run the event loop while another loop is running
  7. app服务器不运行了,springmvc app URL在本地运行,但不在服务器上运行
  8. 石河子大学计算机学院宿舍,对于那些想去211石河子大学的同学给你一点建议
  9. python范围运算符_Python的海象运算符
  10. iphone控制电脑_苹果远程控制电脑软件免费下载-超控Controlax(iPhone远程控制Windows)v1.1 最新版...