在开始前
HAL_CAN_ConfigFilter()
配置接受滤波器
HAL_CAN_Start()
启动CAN
HAL_CAN_AddTxMessage()
传输新消息
HAL_CAN_AbortTxRequest()
中止传输
HAL_CAN_GetTxMailboxesFreeLevel()
获取空闲の发送邮箱数
HAL_CAN_IsTxMessagePending()
检查消息是否挂起在一个发送邮箱
HAL_CAN_GetTxTimestamp()
获取发送消息的时间戳(if time triggered communication mode is enabled.)
在轮询
HAL_CAN_GetRxFifoFillLevel()
监视,直到至少收到一条信息
之后使用HAL_CAN_GetRxMessage()
接收消息。
HAL_CAN_GetTxMailboxesFreeLevel()
监视,直到有发送邮箱可用
之后使用HAL_CAN_AddTxMessage().
发送消息
在中断
HAL_CAN_ActivateNotification()
启动总线错误中断,之后可以使用回调函数
HAL_CAN_xxxCallback()
, 或着HAL_CAN_GetRxMessage()
与HAL_CAN_AddTxMessage()
HAL_CAN_DeactivateNotification()
关闭之
(#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options here. (++) Directly get the Rx message in the callback, using HAL_CAN_GetRxMessage(). (++) Or deactivate the notification in the callback without getting the Rx message. The Rx message can then be got later using HAL_CAN_GetRxMessage(). Once the Rx message have been read, the notification can be activated again.
睡眠模式
暂无
回调の注册
当
USE_HAL_CAN_REGISTER_CALLBACKS
设置为1时,我们可以动态配置驱动程序回调。
(+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback.
(+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback.
(+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback.
(+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback.
(+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback.
(+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback.
(+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback.
(+) RxFifo0FullCallback : Rx Fifo 0 Full Callback.
(+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback.
(+) RxFifo1FullCallback : Rx Fifo 1 Full Callback.
(+) SleepCallback : Sleep Callback.
(+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback.
(+) ErrorCallback : Error Callback.
(+) MspInitCallback : CAN MspInit.
(+) MspDeInitCallback : CAN MspDeInit.
`