原创 设置某一个片上外设中断的方法

2021-5-9 23:12 1704 23 3 分类: MCU/ 嵌入式 文集: 中断
1.编写片上外设的正常工作的程序
将片上外设的功能配置OK(在查询方式下能够工作)
2和3只需要设置一次,所以在片上外设的初始化函数中编写
2.开启NVIC(在core_cm3.h或core_cm4.h中找NVIC开头的函数
step1:设置优先级分组
step2:合成优先级并使用一个变量接收函数的返回值
step3:设置优先级到这个片上外设中
step4:使能这个片上外设的NVIC控制器

3.开启这个片上外设的模块级中断使能(在stm32提供的F1系列或F4系列的手册中的对应片上外设的寄存器中找)
step1:根据需要这个片上外设的各个中断使能位



4.编写中断服务函数
step1:清要实现的功能的必要的标志位
step2:把要在中断中执行的操作写在函数体中


以USART为例
1.正常初始化设备
2.之后将中断的步骤添加进去
  
NVIC_SetPriorityGrouping(7-2);
  • NVIC_SetPriority(USART1_IRQn,NVIC_EncodePriority(7-2,2,1));
  • NVIC_EnableIRQ(USART1_IRQn);
  • USART1->CR1 |= (1<<5);
  • 复制代码

    3.编写中断服务函数
      
    void USART1_IRQHandler(void)
  • {
  •     if(USART1->SR &= (1<<5)!=0)
  •       {
  •          USART1->DR = USART1->DR;
  •       }
  • }
  • 复制代码
      
    PARTNER CONTENT

    文章评论0条评论)

    登录后参与讨论
    我要评论
    0
    23
    关闭 站长推荐上一条 /3 下一条