CH32F208 CAN 发送 数据第6和第7字节错误问题

  CAN_TxMsg.StdId = 0x79f;

                        //CAN_TxMsg.IDE=CAN_ID_EXT;  //使用标准标识符 +  扩展标识符 

                        CAN_TxMsg.IDE=CAN_ID_STD;  //使用标准标识符  

                        CAN_TxMsg.RTR=0;// CAN_RTR_DATA; 数据帧

                        CAN_TxMsg.DLC=len-4;  //数据长度

                        for(i=0;i

                        {

                            CAN_TxMsg.Data[i]=i;//USB_buf[4+i];

                        }

                        

                        CAN_Transmit(CAN1,&CAN_TxMsg);


通过逻辑分析仪采集发送出来的数据和实际数据有误,本来数应该是0X00--0X07 但是实际上最后两个字节是

0X2C  和0X1E  不知道是什么原因

image.png

不管是扩展帧还是标准帧都是如此,官方例程 CH32F20xEVT\EVT\EXAM\CAN\Time-triggered


你使用的是时间触发模式的例程,只有前六个字节可以用,建议在你的工程上can初始化完成后,再加上这一句就行了CAN1->CTLR&=~(1<<7);关闭时间触发模式就行了image.png


谢谢


只有登录才能回复,可以选择微信账号登录