欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -1

NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -1

2025/3/10 11:58:50 来源:https://blog.csdn.net/qq_35671135/article/details/139794569  浏览:    关键词:NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -1

概要

CAN测试源码:
https://download.csdn.net/download/qq_35671135/89425377

根据fsl_flexcan.h文件从文件末尾往前面梳理,总共CAN FD处理函数;
使用的是RT1064开发板进行测试。

1、中止中断驱动的消息接收进程(CAN FD)

函 数 :void FLEXCAN_TransferFDAbortReceive(CAN_Type *base, flexcan_handle_t *handle, uint8_t mbIdx);
说 明 :这个函数中止中断驱动的消息接收进程。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
返回值:无

2、中止中断驱动的消息发送进程(CAN FD)

函 数 :void FLEXCAN_TransferFDAbortSend(CAN_Type *base, flexcan_handle_t *handle, uint8_t mbIdx);
说 明 :这个函数终止中断驱动的消息发送进程。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
返回值:无

3、使用IRQ接收CAN FD消息。

函 数 :status_t FLEXCAN_TransferFDReceiveNonBlocking(CAN_Type *base, flexcan_handle_t *handle, flexcan_mb_transfer_t *pMbXfer);
说 明 :此函数使用IRQ接收消息。这是一个非阻塞函数,它会立即返回。当消息被接收时,将调用receive回调函数
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :pMbXfer FlexCAN FD消息缓冲区传输结构。参见#flexcan_mb_transfer_t。
返回值:kStatus_Success 启动Rx Message Buffer接收进程成功。
kStatus_FLEXCAN_RxBusy Rx消息缓冲区正在使用中。

4、使用IRQ发送CAN FD消息。

函 数 :status_t FLEXCAN_TransferFDSendNonBlocking(CAN_Type *base, flexcan_handle_t *handle, flexcan_mb_transfer_t *pMbXfer);
说 明 :这个函数使用IRQ发送消息。这是一个非阻塞函数,它会立即返回。当消息发出后,send回调函数被调用。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :pMbXfer FlexCAN FD消息缓冲区传输结构。参见#flexcan_mb_transfer_t。
返回值:kStatus_Success 启动Tx Message Buffer发送进程成功。
kStatus_Fail 写Tx消息缓冲区失败
kStatus_FLEXCAN_TxBusy Tx消息缓冲区正在使用中

5、在CAN总线上执行轮询接收事务(CAN FD)

函 数 :status_t FLEXCAN_TransferFDReceiveBlocking(CAN_Type *base, uint8_t mbIdx, flexcan_fd_frame_t *pRxFrame);
说 明 :在调用此API之前不需要创建传输句柄。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN FD消息帧结构的指针。
返回值:kStatus_Success Rx消息缓冲区已满,并已成功读取。
kStatus_FLEXCAN_RxOverflow Rx消息缓冲区已经溢出,并已成功读取
kStatus_Fail Rx消息缓冲区为空。

6、在CAN总线上执行轮询发送事务(CAN FD)

函 数 :status_t FLEXCAN_TransferFDReceiveBlocking(CAN_Type *base, uint8_t mbIdx, flexcan_fd_frame_t *pRxFrame);
说 明 :在调用此API之前不需要创建传输句柄。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxFrame 指向要发送的CAN FD消息帧的指针。
返回值:kStatus_Success 写Tx消息缓冲区成功。
kStatus_Fail Tx消息缓冲区正在使用中

7、从接收消息缓冲区中读取FlexCAN FD消息。

函 数 :status_t FLEXCAN_ReadFDRxMb(CAN_Type *base, uint8_t mbIdx, flexcan_fd_frame_t *pRxFrame);
说 明 :这个函数从指定的接收消息缓冲区中读取CAN FD消息。该函数用刚刚接收到的数据填充接收CAN FD消息帧结构,并再次激活消息缓冲区。函数立即返回。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN FD消息帧结构的指针。
返回值:kStatus_Success Rx消息缓冲区已满,并已成功读取。
kStatus_FLEXCAN_RxOverflow Rx消息缓冲区已经溢出,并已成功读取
kStatus_Fail Rx消息缓冲区为空。

8、将FlexCAN FD消息写入发送消息缓冲区。

函 数 :status_t FLEXCAN_WriteFDTxMb(CAN_Type *base, uint8_t mbIdx, const flexcan_fd_frame_t *pTxFrame);
说 明 :该函数将CAN - FD消息写入指定的Transmit Message Buffer,并改变Message Buffer的状态,开始CAN - FD消息的发送。函数立即返回。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxFrame 指向要发送的CAN FD消息帧的指针。
返回值:kStatus_Success 写Tx消息缓冲区成功。
kStatus_Fail Tx消息缓冲区正在使用中

9、配置FlexCAN接收消息缓冲区。(CAN FD)

函 数 :void FLEXCAN_SetFDRxMbConfig(CAN_Type *base, uint8_t mbIdx, const flexcan_rx_mb_config_t *pRxMbConfig, bool enable);
说 明 :这个函数清除FlexCAN内置的消息缓冲区,并将其配置为接收消息缓冲区。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxMbConfig 指向FlexCAN消息缓冲区配置结构的指针。
参 数 :enable Enable/disable
返回值:无

10、配置FlexCAN发送消息缓冲区。(CAN FD)

函 数 :void FLEXCAN_SetFDTxMbConfig(CAN_Type *base, uint8_t mbIdx, bool enable);
说 明 :此函数终止先前的传输,清除消息缓冲区,并将其配置为传输消息缓冲区。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :enable Enable/disable
返回值:无

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词