CAN连续发送,会卡死或者数据发不出去,大家有解决方案吗?
CAN连续发送,会卡死或者数据发不出去,大家有解决方案吗?例如 以20ms一个发送周期,连续发送多个设备的CAN报文,
if(TIM6.CAN_SEND_FLAG)
{
TIM6.CAN_SEND_FLAG=0;
can1_tx(&MOTOR1);
can1_tx(&MOTOR2);
can1_tx(&MOTOR3);
can1_tx(&MOTOR4);
}
加了delayms(10),就会好了。
如果不加延时,就会有数据丢失,请问这种情况,不加延时,大家是如何处理的啊?
另外希望硬汉哥也会给予指点!
万分感谢!
连续两帧发布,中间需插入CAN的帧间隔,连续3个以上隐性电平即可 你硬件邮箱FIFO不就能容纳三帧吗? HAL_CAN_IsTxMessagePending()这个函数是用来检查邮箱的挂起状态的 HAL_CAN_GetTxMailboxesFreeLevel()这个是用来检查邮箱是否可用的
我这样用是可以连续发送的,你可以参考下 if(HAL_CAN_GetTxMailboxesFreeLevel(phcanx->hcan) != 0) HAL库的这个函数可以查询是否有可用的邮箱 TRX 发表于 2023-5-30 10:02
HAL_CAN_GetTxMailboxesFreeLevel()这个是用来检查邮箱是否可用的
我这样用是可以连续发送的,你可以参 ...
大佬牛逼,谢谢你
页:
[1]