发送数据共有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帧吗?? 测试截图: æµè¯æªå¾ |
STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
有没有用过数字式mems麦克风的,想问下SPI通讯的问题
STM32F107作为USB主机模拟串口通讯不成功(采用PL2303芯片)
STM32F103C8 LIN通讯例程
求助,丐版J-Link通讯不上
ethernet可以与ethercat通讯吗?
LIS3DH SPI 通讯问题
STM32F373 CAN通讯问题CAN_FLAG_LEC
请教高手看看,STM32F1的多机通讯,地址匹配唤醒问题
CAN总线:如何利用程序(STM32)判断CAN总线的波特率/通讯协议?
您好,请问可不可以分享下例程
可以试试中间加个延时看看
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;
或者下次发送前判断上次是否发送完成,邮箱是否满了
谢谢你,我在测试下
你好,问题已经解决,发送时间太快了,在帧与帧之间在增加延时解决问题!