关于CAN接受函数等待问题
-
H7模块,需要用can总线传输图像采集处理后的关键参数,发送通过定时器中断定时发送,目前没有问题
但是接收报文放在主循环里就出现了问题:1、can报文接收函数是等待机制,放到主循环如果没有“收到报文”主循环就卡在“等待报文”环节阻止循环,除中断外的所有的处理就停了。2、如果始终有接受id的报文输入,通讯速率必须大约等于循环FPS,不然整体帧率就被拖下来了。 。
请问官方有什么方法能够把这种接收的“同步机制”调整成为异步的,不影响主循环效率。
-
@4yx1 在 关于CAN接受函数等待问题 中说:
H7plus模块,需要用can总线传输图像采集处理后的关键参数,发送通过定时器中断定时发送,目前没有问题
但是接收报文放在主循环里就出现了问题:1、can报文接收函数是等待机制,放到主循环如果没有“收到报文”主循环就卡在“等待报文”环节阻止循环,除中断外的所有的处理就停了。2、如果始终有接受id的报文输入,通讯速率必须大约等于循环FPS,不然整体帧率就被拖下来了。
。
请问官方有什么方法能够把这种接收的“同步机制”调整成为异步的,不影响主循环效率。
win7系统 固件版本4.4.2
-
你把timeout改为1ms。
-
@kidswong999 改低了报文速度跟不上或者不给发接收的报文就报错了,所以才给个-1,结果主循环在等待报文才运行
-
你用try catch捕获异常不行吗?