一。发送
1,基础知识
2.发送函数
3.发送函数F1开发板和F4开发板的区别(左边是F1,右边是F4)
注意:有不同的:在标识符中,F1开发板用的是宏定义,F4开发板用的是数值,宏定义和数值是一样的。
4.STM32F1开发板的发送函数注意事项:
1.Msg是数据指针,也是我们要发送的内容,也就是我们要发送的缓冲区的首地址。
2.len是发送的数据长度0~8.
3.发送格式:以0x12这种12位的固定ID格式发送。
4.mbox是发送邮箱(是通过后面的CAN_Transmit进行查询才能知道我们用的邮箱是哪一个)
5.CanTxMsg TxMessage这个是定义的结构体。
6.StdId是标准ID ExtId是扩展ID
7.IDE是标准帧
8. TxMessage.Data是一个数组
9. while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++;
这句话意思是
根据查询状态寄存器,是不是发送失败了,发送失败的话,需要等待一段时间,
如果还是失败,就返回1,失败,返回0,发送成功。
二。接收
1,基础知识
注意:报文FIFO具有锁定功能(由CAN_MCR,RFLM位控制),锁定后,新数据将丢弃,
不锁定则新数据将替代老数据
2,接收函数
三,STM32的CAN位时序