打印
[STM32F1]

CAN 发送数据少了一帧

[复制链接]
1038|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hhhxj|  楼主 | 2021-5-19 14:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
CAN, AN, AC

大家帮忙 分析下为什么少了一帧数据

使用特权

评论回复
沙发
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 | 只看该作者
可能是总线负荷增加或数据吞吐量增加,导致数据传输速度跟不上数据的生成速度,从而导致数据丢失。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

27

帖子

0

粉丝