0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32入门学习笔记之中断架构(下)

jf_78858299 来源:滑小稽笔记 作者:电子技术园地 2023-02-16 09:57 次阅读

(4) 外部中断配置寄存器1 :EXTIXR1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EXTI3[3:0] EXTI2[3:0] EXTI1[3:0] EXTI0[3:0]

EXTIx[3:0]:EXTIx配置(x = 0~3)

0000:PA[x]引脚 0100:PE[x]引脚 0001:PB[x]引脚 0101:PF[x]引脚

0010:PC[x]引脚 0110:PG[x]引脚 0011:PD[x]引脚

(5) 外部中断配置寄存器2 :EXTIXR2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EXTI7[3:0] EXTI6[3:0] EXTI5[3:0] EXTI4[3:0]

EXTIx[3:0]:EXTIx配置(x = 4~7)

0000:PA[x]引脚

0100:PE[x]引脚

0001:PB[x]引脚

0101:PF[x]引脚

0010:PC[x]引脚

0110:PG[x]引脚

0011:PD[x]引脚

(6) 外部中断配置寄存器3 :EXTIXR3

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EXTI11[3:0] EXTI10[3:0] EXTI9[3:0] EXTI8[3:0]

EXTIx[3:0]:EXTIx配置(x = 8~11)

0000:PA[x]引脚

0100:PE[x]引脚

0001:PB[x]引脚

0101:PF[x]引脚

0010:PC[x]引脚

0110:PG[x]引脚

0011:PD[x]引脚

(7) 外部中断配置寄存器4 :EXTIXR4

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EXTI15[3:0] EXTI14[3:0] EXTI13[3:0] EXTI12[3:0]

EXTIx[3:0]:EXTIx配置(x = 12~15)

0000:PA[x]引脚

0100:PE[x]引脚

0001:PB[x]引脚

0101:PF[x]引脚

0010:PC[x]引脚

0110:PG[x]引脚

0011:PD[x]引脚

(8) APB2外设时钟使能寄存器 :APB2ENR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- USART1EN - SPI1EN TIM1EN ADC2EN ADC1EN - IOPEEN IOPDEN IOPCEN IOPBEN IOPAEN - AFIOEN

Bit 14:USART1时钟使能(写1开启,写0关闭)

Bit 12:SPI1时钟使能(写1开启,写0关闭)

Bit 11:TIM1时钟使能(写1开启,写0关闭)

Bit 10:ADC2时钟使能(写1开启,写0关闭)

Bit 9:ADC1时钟使能(写1开启,写0关闭)

Bit 6:GPIOE时钟使能(写1开启,写0关闭)

Bit 5:GPIOD时钟使能(写1开启,写0关闭)

Bit 4:GPIOC时钟使能(写1开启,写0关闭)

Bit 3:GPIOB时钟使能(写1开启,写0关闭)

Bit 2:GPIOA时钟使能(写1开启,写0关闭)

Bit 0:辅助功能IO时钟使能(写1开启,写0关闭)

3.3.3 外部中断配置函数

/***************************************************
Name    :EXIT_Config
Function  :外部中断配置
Parameter  :
      GPIOx:0~6,代表GPIOA~G
      BITx:需要使能的位 
      TRIM:触发模式
        1:下升沿
        2:上降沿
        3:任意电平触发
Return    :None
***************************************************/
void EXIT_Config( u8 GPIOx, u8 BITx, u8 TRIM )
{
  u8 EXTADDR ;
  u8 EXTOFFSET ;
  EXTADDR = BITx/4 ;                      //得到中断寄存器组的编号
  EXTOFFSET = ( BITx%4 )*4 ;
  RCC->APB2ENR |= 0x01 ;                    //使能io复用时钟       
  AFIO->EXTICR[ EXTADDR ] &= ~( 0x000F<<EXTOFFSET );      //清除原来设置
  AFIO->EXTICR[ EXTADDR ] |= GPIOx<<EXTOFFSET ;        //EXTI.BITx映射到GPIOx.BITx
  EXTI->IMR |= 1<<BITx ;                    //开启line BITx上的中断
   if( TRIM&0x01 )  EXTI->FTSR |= 1<<BITx ;            //下降沿触发
  if( TRIM&0x02 )  EXTI->RTSR |= 1<<BITx ;            //上升降沿触发
}

3.4 其他文件的添加

3.4.1 寄存器定义文件

(1)添加用到的NVIC寄存器组和EXTI寄存器组的定义。

图片

(2)定义寄存器组地址

图片

3.4.2 sys.h文件

图片

上图就是添加子函数声明,为了用于其他文件调用。

3.4.3 sys.c文件

(1)在STM32时钟配置函数之前增加复位时钟和中断的功能,最终函数如下图所示。

图片

(2)添加刚才的两个子函数

图片

图片

至此,sys文件里面最基础的函数就全部添加完毕了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348866
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41030
  • Cortex-M
    +关注

    关注

    2

    文章

    224

    浏览量

    29574
  • 单片机
    +关注

    关注

    0

    文章

    168

    浏览量

    16658
收藏 人收藏

    评论

    相关推荐

    STM32单片机学习笔记(8):外部中断

    利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。本项目需要实现的功能就是利用CubMX配置外部
    发表于 07-20 15:32 508次阅读
    <b class='flag-5'>STM32</b>单片机<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(8):外部<b class='flag-5'>中断</b>

    STM32学习笔记14:基本问题,来讨论一软件架构

    ,systic时钟应用stm32学习教程13:恶搞,两只看门狗STM32学习笔记14:基本问题,来讨论一
    发表于 01-29 09:36

    STM32学习记录之中断是什么

    STM32学习记录——中断和事件最近比较懒惰,突然有人让详述一中断是什么,脑中又闪出那个解释:中断
    发表于 08-16 09:17

    stm32学习之中断事件

    stm32学习之中断事件 相信很多小伙伴们早已在51系列的板子上接触中断,大概的概括便是:正在看电影的你,突然来了快递,你暂停了电影去签收了快递,回来继续看电影这便是一级
    发表于 08-17 07:13

    CubeMX入门STM32 HAL库的学习笔记

    STM32CubeMX是ST官方开发的一款很好用的软件,主要用于STM32系列单片机的硬件驱动层的配置。网上也有一些关于STM32CubeMX的相关教程,对它的相关操作进行说明。从今天起,小柯希望能将自己从CubeMX
    发表于 08-17 06:55

    STM32入门学习笔记 精选资料分享

    STM32入门学习笔记本文为笔者入门学习过程的记录,只是零散的记录了一些个人不太懂得,觉得需要经
    发表于 08-24 07:56

    STM32中断与嵌套快速入门(NVIC)

    STM32中断与嵌套快速入门(NVIC),喜欢的朋友可以下载来学习
    发表于 01-15 17:45 41次下载

    STM32中断与嵌套NVIC快速入门

    STM32 中断与嵌套NVIC 快速入门,喜欢的朋友可以下载来学习
    发表于 01-15 17:45 20次下载

    STM32各模块学习笔记

    STM32个模块学习笔记 目录 STM32笔记之一 中断优先级.................
    发表于 11-30 03:32 2983次阅读

    stm32之中断与外部中断

    前言:1.有51单片机开发经验会比较容易理解中断优先级;2.本篇博文基于STM32F103RCT6芯片和3.5.0标准库编写;3.作为自己学习的一些心得,如有不足之处,还请前辈多多指教
    发表于 11-22 13:06 26次下载
    <b class='flag-5'>stm32</b><b class='flag-5'>之中断</b>与外部<b class='flag-5'>中断</b>

    STM32学习笔记--中断系统

    目录:一、STM32中断系统二、NVIC中断管理三、中断配置相关函数一、STM32中断系统
    发表于 12-04 18:36 4次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>--<b class='flag-5'>中断</b>系统

    STM32学习笔记(五)---NVIC

    STM32学习笔记(五)—NVIC文章目录STM32学习笔记(五)---NVIC一、NVIC简介
    发表于 12-04 18:51 16次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(五)---NVIC

    STM32笔记之中断优先级和开关总中断

    STM32中断优先级和开关总中断一,中断优先级:STM32(Cortex-M3)中的优先级概念STM32
    发表于 01-14 15:24 12次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>笔记</b><b class='flag-5'>之中断</b>优先级和开关总<b class='flag-5'>中断</b>

    STM32入门学习笔记之中断架构(上)

    Cortex-M3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。但STM32并没有使用
    的头像 发表于 02-16 09:57 982次阅读

    STM32学习笔记一外部中断

    STM32 的每个 IO 都可以作为外部中断中断输入口。STM32F103 的中断控制器支持 19 个外部
    的头像 发表于 10-24 14:12 692次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>一外部<b class='flag-5'>中断</b>