发送数据共有29个字节,所以拆开5帧发送 多帧发送数据格式: byte0 byte1 byte2 .... byte7 单帧数据 数据长度 数据开始 第一帧 0x01 0-255 byte0 byte1 byte2 .... byte7 单帧数据 第二帧 0x02 byte0 byte1 byte2 .... byte7 单帧数据 第xx帧 xx 数据结束 void can_tx1(void) { CanTxMsg TxMessage; TxMessage.StdId=0x0001; //标准标识符为0x00 // TxMessage.ExtId=0x1314; //扩展标识符0x0000 TxMessage.IDE=CAN_ID_STD; //使用标准标识符 TxMessage.RTR=CAN_RTR_DATA; //为数据帧 TxMessage.DLC=8; //消息的数据长度为8个字节 TxMessage.Data[0]=0x01; TxMessage.Data[1]=0x1D; TxMessage.Data[2]=xxxx[0]; TxMessage.Data[3]=xxxx[1]; TxMessage.Data[4]=xxxx[2]; TxMessage.Data[5]=xxxx[3]; TxMessage.Data[6]=xxxx[4]; TxMessage.Data[7]=xxxx[5]; CAN_Transmit(CAN1,&TxMessage); //发送数据 } void can_send_data(void) { if(rec_ok_flag) { rec_ok_flag=0; can_tx1(); can_tx2(); can_tx3(); can_tx4(); can_tx5(); } } 数据拆开5帧发送,但是只发送了前面3帧,后面2帧没有发送,不知道为什么?是最多只发送3帧吗?? 测试截图: 测试截图 |
f407与上位机,高速通讯。
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
消防二总线通讯?
有没有用过数字式mems麦克风的,想问下SPI通讯的问题
ST 电机电机工作站,就是那个workbench的通讯协议是啥啊?
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
stm32F1单片机iic主从模式通讯
串口通讯偶尔出现故障,不能自行恢复,如何解决
stm32f103zet6串口通讯过程中报ORE错误
求助,丐版J-Link通讯不上
您好,请问可不可以分享下例程
可以试试中间加个延时看看
can_tx1();
delay_ms(10)
can_tx2();
delay_ms(10)
。。。
也可以在发完后判断是否完成或超时
while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++; //等待发送结束
if(i>=0XFFF)return 1;
或者下次发送前判断上次是否发送完成,邮箱是否满了
谢谢你,我在测试下
你好,问题已经解决,发送时间太快了,在帧与帧之间在增加延时解决问题!