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; }}复制代码
文章评论(0条评论)
登录后参与讨论