将canopennode-1.3-master版本中的CAN模块中断处理函数改为轮询函数
时间: 2024-04-07 16:29:17 浏览: 39
arduino-timer:用于延迟函数调用的非阻塞库
将CAN模块中断处理函数改为轮询函数需要对CANopenNode的源代码进行修改。以下是修改的步骤:
1. 打开can_drv.c文件,找到CAN模块的中断处理函数`void canDispatch(CAN_MODULE module)`。
2. 在函数中删除所有的中断处理代码,只保留函数最开始的变量定义部分。
3. 在函数中添加一个while循环,用于轮询CAN模块是否有新的数据到达。循环中需要调用CAN模块的接收函数,例如`can_recv`,来获取新的数据。
4. 在while循环中可以添加一些处理代码,例如将接收到的数据放入缓冲区中。
5. 保存修改后的源代码,并重新编译生成可执行文件。
需要注意的是,将CAN模块中断处理函数改为轮询函数可能会影响系统的实时性能,因此需要根据具体情况进行评估和优化。
阅读全文