A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用 1 CAN通用驱动程序所有函数预览 1.1 HAL_CAN_Init 1.2 HAL_CAN_ConfigFilter 1.3 HAL_CAN_DeInit 1.4 HAL_CAN_MspInit 1.5 HAL_CAN_MspDeInit 1.6 HAL_CAN_Transmit 1.7 HAL_CAN_Transmit_IT 1.8 HAL_CAN_Receive 1.9 HAL_CAN_Receive_IT 1.10 HAL_CAN_Sleep 1.11 HAL_CAN_WakeUp 1.12 HAL_CAN_IRQHandler 1.13 HAL_CAN_TxCpltCallback 1.14 HAL_CAN_RxCpltCallback 1.15 HAL_CAN_ErrorCallback 1.16 HAL_CAN_GetState 1.17 HAL_CAN_GetError 该文档修改记录: 总结
1 CAN通用驱动程序所有函数预览
序号 函数名 描述 1 HAL_CAN_Init() 初始化CAN外设。 2 HAL_CAN_ConfigFilter() 配置CAN过滤器。 3 HAL_CAN_DeInit() 反初始化CAN外设。 4 HAL_CAN_MspInit() 初始化MCU外设相关的CAN引脚或资源。 5 HAL_CAN_MspDeInit() 反初始化MCU外设相关的CAN引脚或资源。 6 HAL_CAN_Transmit() 同步发送CAN消息。 7 HAL_CAN_Transmit_IT() 异步发送CAN消息,使用中断处理发送完成。 8 HAL_CAN_Receive() 同步接收CAN消息。 9 HAL_CAN_Receive_IT() 异步接收CAN消息,使用中断处理接收完成。 10 HAL_CAN_Sleep() 进入CAN休眠模式。 11 HAL_CAN_WakeUp() 唤醒CAN设备。 12 HAL_CAN_IRQHandler() CAN中断处理程序。 13 HAL_CAN_TxCpltCallback() CAN发送完成回调函数。 14 HAL_CAN_RxCpltCallback() CAN接收完成回调函数。 15 HAL_CAN_ErrorCallback() CAN错误回调函数。 16 HAL_CAN_GetState() 获取CAN状态。 17 HAL_CAN_GetError() 获取CAN错误状态。
使用模板:
# include "stm32f4xx_hal.h" int main ( void ) { HAL_Init ( ) ; HAL_MspInit ( ) ; HAL_CAN_Init ( ) ; HAL_CAN_ConfigFilter ( ) ; HAL_CAN_Transmit ( ) ; HAL_CAN_Transmit_IT ( ) ; HAL_CAN_Receive ( ) ; HAL_CAN_Receive_IT ( ) ; HAL_CAN_Sleep ( ) ; HAL_CAN_WakeUp ( ) ; uint32_t canState = HAL_CAN_GetState ( ) ; uint32_t canError = HAL_CAN_GetError ( ) ; HAL_CAN_DeInit ( ) ; HAL_MspDeInit ( ) ; return 0 ;
}
1.1 HAL_CAN_Init
函数名 HAL_CAN_Init 函数原形 HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef* hcan) 功能描述 初始化 CAN 控制器 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 HAL_StatusTypeDef:初始化结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.2 HAL_CAN_ConfigFilter
函数名 HAL_CAN_ConfigFilter 函数原形 HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef* hcan, CAN_FilterTypeDef* sFilter) 功能描述 配置 CAN 过滤器 输入参数 1 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输入参数 2 sFilter:CAN 过滤器配置结构体,包含过滤器编号、模式、掩码等信息 输出参数 无 返回值 HAL_StatusTypeDef:配置结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.3 HAL_CAN_DeInit
函数名 HAL_CAN_DeInit 函数原形 HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef* hcan) 功能描述 反初始化 CAN 控制器 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 HAL_StatusTypeDef:反初始化结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.4 HAL_CAN_MspInit
函数名 HAL_CAN_MspInit 函数原形 void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan) 功能描述 CAN 外设底层初始化,典型的用途是配置外设的时钟和引脚 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.5 HAL_CAN_MspDeInit
函数名 HAL_CAN_MspDeInit 函数原形 void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan) 功能描述 CAN 外设底层反初始化,典型的用途是恢复外设的默认配置 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.6 HAL_CAN_Transmit
函数名 HAL_CAN_Transmit 函数原形 HAL_StatusTypeDef HAL_CAN_Transmit(CAN_HandleTypeDef* hcan, uint32_t Timeout) 功能描述 启动 CAN 数据传输 输入参数 1 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输入参数 2 Timeout:传输超时时间,单位为毫秒 输出参数 无 返回值 HAL_StatusTypeDef:传输结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.7 HAL_CAN_Transmit_IT
函数名 HAL_CAN_Transmit_IT 函数原形 HAL_StatusTypeDef HAL_CAN_Transmit_IT(CAN_HandleTypeDef* hcan) 功能描述 以中断方式启动 CAN 数据传输 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 HAL_StatusTypeDef:传输结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.8 HAL_CAN_Receive
函数名 HAL_CAN_Receive 函数原形 HAL_StatusTypeDef HAL_CAN_Receive(CAN_HandleTypeDef* hcan, uint8_t FIFONumber, uint32_t Timeout) 功能描述 接收 CAN 数据 输入参数 1 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输入参数 2 FIFONumber:FIFO 编号,可以是 CAN_FIFO0 或 CAN_FIFO1 输入参数 3 Timeout:接收超时时间,单位为毫秒 输出参数 无 返回值 HAL_StatusTypeDef:接收结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.9 HAL_CAN_Receive_IT
函数名 HAL_CAN_Receive_IT 函数原形 HAL_StatusTypeDef HAL_CAN_Receive_IT(CAN_HandleTypeDef* hcan, uint8_t FIFONumber) 功能描述 以中断方式启动 CAN 数据接收 输入参数 1 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输入参数 2 FIFONumber:FIFO 编号,可以是 CAN_FIFO0 或 CAN_FIFO1 输出参数 无 返回值 HAL_StatusTypeDef:接收结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.10 HAL_CAN_Sleep
函数名 HAL_CAN_Sleep 函数原形 HAL_StatusTypeDef HAL_CAN_Sleep(CAN_HandleTypeDef* hcan) 功能描述 进入 CAN 休眠模式 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 HAL_StatusTypeDef:操作结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.11 HAL_CAN_WakeUp
函数名 HAL_CAN_WakeUp 函数原形 HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef* hcan) 功能描述 唤醒 CAN 控制器 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 HAL_StatusTypeDef:操作结果,可以是 HAL_OK 或 HAL_ERROR 先决条件 无 被调用函数 无
1.12 HAL_CAN_IRQHandler
函数名 HAL_CAN_IRQHandler 函数原形 void HAL_CAN_IRQHandler(CAN_HandleTypeDef* hcan) 功能描述 CAN 中断处理函数 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.13 HAL_CAN_TxCpltCallback
函数名 HAL_CAN_TxCpltCallback 函数原形 void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* hcan) 功能描述 CAN 数据传输完成回调函数 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.14 HAL_CAN_RxCpltCallback
函数名 HAL_CAN_RxCpltCallback 函数原形 void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan) 功能描述 CAN 数据接收完成回调函数 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.15 HAL_CAN_ErrorCallback
函数名 HAL_CAN_ErrorCallback 函数原形 void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) 功能描述 CAN 错误处理回调函数 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 无 先决条件 无 被调用函数 无
1.16 HAL_CAN_GetState
函数名 HAL_CAN_GetState 函数原形 uint32_t HAL_CAN_GetState(CAN_HandleTypeDef* hcan) 功能描述 获取 CAN 控制器状态 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 uint32_t:CAN 控制器状态,可能的值有:
- HAL_CAN_STATE_READY:就绪状态- HAL_CAN_STATE_BUSY:忙碌状态- HAL_CAN_STATE_BUSY_TX:忙碌发送状态- HAL_CAN_STATE_BUSY_RX:忙碌接收状态- HAL_CAN_STATE_BUSY_TX_RX:忙碌发送接收状态- HAL_CAN_STATE_TIMEOUT:超时状态- HAL_CAN_STATE_ERROR:错误状态 |
| 先决条件 | 无 | | 被调用函数 | 无 |
1.17 HAL_CAN_GetError
函数名 HAL_CAN_GetError 函数原形 uint32_t HAL_CAN_GetError(CAN_HandleTypeDef* hcan) 功能描述 获取 CAN 错误状态 输入参数 hcan:CAN 句柄,指向一个 CAN_HandleTypeDef 结构体 输出参数 无 返回值 uint32_t:CAN 错误状态,可能的值有:
- HAL_CAN_ERROR_NONE:无错误- HAL_CAN_ERROR_EWG:错误警告- HAL_CAN_ERROR_EPV:误差传动器警告- HAL_CAN_ERROR_BOF:总线关闭错误- HAL_CAN_ERROR_LEC:最后的错误代码- HAL_CAN_ERROR_SOF:起始帧错误- HAL_CAN_ERROR_ACK:确认错误- HAL_CAN_ERROR_BR:位错误- HAL_CAN_ERROR_BD:数据错误 |
| 先决条件 | 无 | | 被调用函数 | 无 |
该文档修改记录:
修改时间 修改说明 2024年4月8日 第一次发布,介绍了 A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用
总结
以上就是A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用的内容。 有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。 创作不容,如果文档对您有帮助,记得给个赞。