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