UCOS环境下的中断程序

时间:2021-03-14 19:35:13

  

   BSP_IntVectSet(BSP_INT_ID_USART1, RFID_RxTxISRHandler); //设置中断号 与中断函数 名称相匹配。

    BSP_IntEn(BSP_INT_ID_USART1); //使能 中断号的中断

    RFID_RxIntEn (); //开启接收中断

以下转自:http://www.embeded0.com/system/ucos/1344.html

先说说,几个关键函数:
bsp_int.c提供几个关键的中断操作函数:
void BSP_IntDis       (CPU_DATA int_id)        //关闭指定中断
void BSP_IntDisAll   (void)                             //关闭所有中断
void  BSP_IntEn       (CPU_DATA int_id)        //使能指定中断
void  BSP_IntVectSet(CPU_DATA      int_id,
CPU_FNCT_VOID  isr) //用这个函数把用户编写的中断函数的首地址放在中断入口处.
中断发生后,系统调用用户中断函数.
void  BSP_IntPrioSet (CPU_DATA   int_id,
CPU_INT08U prio)       //设置中断优先级

实例说明如何用上面的函数:
在app_vect-v5.c中编写串口1中断服务函数:static void BSP_IntHandlerUSART1(void)  

执行以下三个函数完成串口1中断配置:
BSP_IntVectSet(BSP_INT_ID_USART1,BSP_IntHandlerUSART1);
BSP_IntPrioSet(BSP_INT_ID_USART1,1);   
BSP_IntEn(BSP_INT_ID_USART1); 

使用uC/OS编写中断函数和使用STM32硬件函数库编写中断函数是不同的,个人推荐使用uC/OS提供的函数编写中断。