[STM32F1] CAN 发送数据少了一帧

[复制链接]
1816|15
 楼主| hhhxj 发表于 2021-5-19 14:13 | 显示全部楼层 |阅读模式
CAN, AN, AC
HO_6KXAER]4B_6%QH5)P(U9.png
大家帮忙 ))`D7MAI$O2]8{BF{YNR}GC.png 分析下为什么少了一帧数据
 楼主| hhhxj 发表于 2021-5-19 14:16 | 显示全部楼层
/*******************************************************************************
功 能: CAN 数据处理函数
*******************************************************************************/
void DealCanSlave(void )
{
        CANMSG *Pcanmsg =&CanMsgData ;
        Pcanmsg->std_id=0x761;
       
        TxHeader.StdId=CanMsgData.std_id;
        TxHeader.ExtId = 0x01;
        TxHeader.RTR = CAN_RTR_DATA;
        TxHeader.IDE = CAN_ID_STD;
        TxHeader.DLC = 8;
        TxHeader.TransmitGlobalTime = DISABLE;
       
                Pcanmsg->TxData[0]=LOBYTE(pv_sys_cond_out/10);  // pv_sys_cond_out/10;
                Pcanmsg->TxData[1]=HIBYTE(pv_sys_cond_out/10);
                Pcanmsg->TxData[2]=0x01;
                Pcanmsg->TxData[3]=0x01;
                Pcanmsg->TxData[4]=0x01;
                Pcanmsg->TxData[5]=0x01;
                Pcanmsg->TxData[6]=0x01;
                Pcanmsg->TxData[7]=0x01;
                HAL_CAN_AddTxMessage(&CAN1_Handler, &TxHeader, Pcanmsg->TxData, &Pcanmsg->TxMailbox) ;

       
                Pcanmsg->std_id=0x762;
       
        TxHeader.StdId=CanMsgData.std_id;
        TxHeader.ExtId = 0x01;
        TxHeader.RTR = CAN_RTR_DATA;
        TxHeader.IDE = CAN_ID_STD;
        TxHeader.DLC = 8;
        TxHeader.TransmitGlobalTime = DISABLE;
       
                Pcanmsg->TxData[0]=LOBYTE(pv_sys_cond_out/10);  // pv_sys_cond_out/10;
                Pcanmsg->TxData[1]=HIBYTE(pv_sys_cond_out/10);
                Pcanmsg->TxData[2]=0x02;
                Pcanmsg->TxData[3]=0x02;
                Pcanmsg->TxData[4]=0x02;
                Pcanmsg->TxData[5]=0x02;
                Pcanmsg->TxData[6]=0x02;
                Pcanmsg->TxData[7]=0x02;
                HAL_CAN_AddTxMessage(&CAN1_Handler, &TxHeader, Pcanmsg->TxData, &Pcanmsg->TxMailbox) ;


                Pcanmsg->std_id=0x763;
       
        TxHeader.StdId=CanMsgData.std_id;
        TxHeader.ExtId = 0x01;
        TxHeader.RTR = CAN_RTR_DATA;
        TxHeader.IDE = CAN_ID_STD;
        TxHeader.DLC = 8;
        TxHeader.TransmitGlobalTime = DISABLE;
       
                Pcanmsg->TxData[0]=LOBYTE(pv_sys_cond_out/10);  // pv_sys_cond_out/10;
                Pcanmsg->TxData[1]=HIBYTE(pv_sys_cond_out/10);
                Pcanmsg->TxData[2]=0x03;
                Pcanmsg->TxData[3]=0x03;
                Pcanmsg->TxData[4]=0x03;
                Pcanmsg->TxData[5]=0x03;
                Pcanmsg->TxData[6]=0x03;
                Pcanmsg->TxData[7]=0x03;
                HAL_CAN_AddTxMessage(&CAN1_Handler, &TxHeader, Pcanmsg->TxData, &Pcanmsg->TxMailbox) ;
               
                Pcanmsg->std_id=0x764;
       
        TxHeader.StdId=CanMsgData.std_id;
        TxHeader.ExtId = 0x01;
        TxHeader.RTR = CAN_RTR_DATA;
        TxHeader.IDE = CAN_ID_STD;
        TxHeader.DLC = 8;
        TxHeader.TransmitGlobalTime = DISABLE;
       
                Pcanmsg->TxData[0]=LOBYTE(pv_sys_cond_out/10);  // pv_sys_cond_out/10;
                Pcanmsg->TxData[1]=HIBYTE(pv_sys_cond_out/10);
                Pcanmsg->TxData[2]=0x04;
                Pcanmsg->TxData[3]=0x04;
                Pcanmsg->TxData[4]=0x04;
                Pcanmsg->TxData[5]=0x04;
                Pcanmsg->TxData[6]=0x04;
                Pcanmsg->TxData[7]=0x04;
                HAL_CAN_AddTxMessage(&CAN1_Handler, &TxHeader, Pcanmsg->TxData, &Pcanmsg->TxMailbox) ;               
}       
elephant00 发表于 2023-11-16 11:15 | 显示全部楼层
可能是总线负荷增加或数据吞吐量增加,导致数据传输速度跟不上数据的生成速度,从而导致数据丢失。
万图 发表于 2024-8-1 07:28 | 显示全部楼层

就是因为它的作用就是在电子产品设备受到雷击浪涌与ESD静电放电或者其他瞬态电压时
Uriah 发表于 2024-8-1 08:31 | 显示全部楼层

这方便一般可以使用底涂的方式来改善
帛灿灿 发表于 2024-8-1 10:27 | 显示全部楼层

正常信号一般达不到导通电压
Bblythe 发表于 2024-8-1 11:30 | 显示全部楼层

在电子电路中电容一端接电阻
周半梅 发表于 2024-8-1 13:26 | 显示全部楼层

明确出电源的性能和稳定性是否符合预期和要求
Pulitzer 发表于 2024-8-1 14:29 | 显示全部楼层

电流若是偏大就会直接导致器件烧毁
童雨竹 发表于 2024-8-1 16:25 | 显示全部楼层

确保在开关管导通,
Wordsworth 发表于 2024-8-1 17:28 | 显示全部楼层

从而达到对电子设备进行静电保护
Clyde011 发表于 2024-8-1 18:31 | 显示全部楼层

齐纳二极管的缺点是不如TVS快
公羊子丹 发表于 2024-8-1 19:24 | 显示全部楼层

这样就可以制作出我们想要的邮票孔了。
好几遍vh 发表于 2024-8-31 18:03 | 显示全部楼层
如果CAN总线上的其他节点也在发送大量数据,可能会导致总线过载,出现仲裁失败的情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部