|
先说说,几个关键函数:
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提供的函数编写中断。
---------------------------------------------------------------------------------------------------------------
以上是网友对这个的解释,
而我对这个BSP_IntHandlerUSART1不理解,这个函数是要用作者移植好的中断入口函数,还是要自己定义,网友指的是入口,
但我在调试程序的时候,外部中断和RTC中断都是自己定义的,都可以用,
而串口中断部分,发送可以发送,但是就是进入不了串口中断函数?
问下这个函数是自己定义还是用中断入口函数?还有串口你们碰到这个问题吗?
有用过的,或者知道原理的能否给解释下。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|