Non-os的驱动不能直接放os里面,动不了的。如果是FreeRTOS,可以上网下载FreeRTOS介绍文档,讲的很详细。 基本问题应该是没有设定中断优先级。FreeRTOS里面有个宏configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 中断优先级不能大于它: NVIC_SetPriority(CAN0_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY + 1); 另外需要加一些锁之类的,多个thread和中断共享的变量需要加互斥
|