|
下面的发送函数。
- /*
- *********************************************************************************************************
- * 函 数 名: can1_SendPacket
- * 功能说明: 发送一包数据
- * 形 参:_DataBuf 数据缓冲区
- * _Len 数据长度, 支持8,12,16,20,24,32,48或者64字节
- * 返 回 值: 无
- *********************************************************************************************************
- */
- void can1_SendPacket(uint8_t *_DataBuf, uint8_t _Len)
- {
- FDCAN_TxHeaderTypeDef TxHeader = {0};
-
- /* 配置发送参数 */
- TxHeader.Identifier = 0x222; /* 设置接收帧消息的ID */
- TxHeader.IdType = FDCAN_STANDARD_ID; /* 标准ID */
- TxHeader.TxFrameType = FDCAN_DATA_FRAME; /* 数据帧 */
- TxHeader.DataLength = (uint32_t)_Len << 16; /* 发送数据长度 */
- TxHeader.ErrorStateIndicator = FDCAN_ESI_ACTIVE; /* 设置错误状态指示 */
- TxHeader.BitRateSwitch = FDCAN_BRS_ON; /* 开启可变波特率 */
- TxHeader.FDFormat = FDCAN_FD_CAN; /* FDCAN格式 */
- TxHeader.TxEventFifoControl = FDCAN_NO_TX_EVENTS;/* 用于发送事件FIFO控制, 不存储 */
- TxHeader.MessageMarker = 0; /* 用于复制到TX EVENT FIFO的消息Maker来识别消息状态,范围0到0xFF */
-
- /* 添加数据到TX FIFO */
- HAL_FDCAN_AddMessageToTxFifoQ(&hfdcan1, &TxHeader, _DataBuf);
- }
复制代码
|
|