STM32F407 中断

//中断

//1、中断的概念:
        CPU在执行主程序时,接收到处理紧急事件的请求(相关标志位发生变化),CPU中断当前的操作(中断执行的主程序,产生断点),去
    执行紧急事件(运行中断服务函数),紧急事件处理完成后回到断点继续执行主程序。
//2、STM32的中断控制系统:
        //NVIC特性:
                STM32F407具有82个可屏蔽中断通道(即82个中断源)
                16个可编程优先级(使用了4位中断优先级)
                低延迟异常和中断处理
                电源管理控制
                系统控制寄存器的实现
        //注意:使用的中断体系为ARM中断体系(M系列通用)
        //NVIC控制器的作用:
                接收中断信号;
                判断中断事件的优先级;
                指挥CPU按先后顺序执行紧急事件(中断服务函数);
        //注意:中断服务函数中不要有大量的延时和死循环;

//中断服务函数和普通函数的区别:
        中断服务函数不需要调用;
        执行时间点不同:普通函数需要主函数执行到相应位置时执行,中断服务函数满足中断条件即执行

//中断使用的时间:
        紧急事件(达到中断条件);
        紧急事件不需要一直运行(瞬间完成此事件);
        实时性(需要触发时触发)
        
//中断的优先级
    抢占优先级(占先);占先高的函数可以抢断占先低的(抢占特性)
    响应优先级(次级);不具有抢占特性
    自然优先级;
    在几个中断同时发生时就需要比较对应的优先级,先比较占先,若占先一样则比较次级,次级一样接着比较自然优先级
    
//ARM中断分组:
    用3位二进制数代表分组,用二进制点区分占先与次级所占的位数,二进制点前方为占先,后方为次级

//STM32使用经过ST公司优化的分组:
    分组从三位二进制数的3开始,占先与次级的所占位数和也变为4位
    
//配置中断的方法:
    1.决定分组,将分组值写入PRIGROUP区域里面(公式:7 - 占先所占位数)
    2.决定占先优先级和次级优先级,计算出PRI_N的写入值,将值写入到对应的PRI_N区域里
    


//NVIC相关配置函数的查找:
    使用ctrl + f在all file中输入NVIC,查找以下函数
    1.设置分组函数:
    //void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)//设置分组;组号 = 7 - 占先所占位数
    2.计算优先级编码(PRI_N的值)
    //uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)//括号里面分别是分组值,占先的值,次级的值
    3.具体某个中断源的优先级设置
    //void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) //括号中填入中断源名,和计算出的编码值
    中断源名查找方法:ctrl + f搜索IRQn
    4.中断信号响应通道使能//使能NVIC响应通道
    void NVIC_EnableIRQ(IRQn_Type IRQn)//括号中填入中断源名字
    
    
//①USART1初始化
    {
        USART1初始化
        补充:CR1  RXNEIE 置一
        CR1 IDLEIE置一
        计算优先级编码置
        配置USART1优先级
        使能USART1中断源

    }
//②USART1中断服务函数
    中断服务函数在工程中任意都能写,千万不要写错名字,建议复制粘贴
    //中断服务函数查找方法:ctrl + f搜索IRQH(无返回值,无形参)
    
//注意在主函数中提前设置好分组;

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值