/STM32F1xx_CAN_Example

STM32F1 的 CAN 驱动程序

Primary LanguageCGNU General Public License v3.0GPL-3.0

STM32F1xx_CAN_Example

STM32F1 的 CAN 驱动程序。适用于 STM32F1 全部芯片。

开发环境

  • 固件库:STM32F10x_StdPeriph_Lib_V3.5.0
  • 编译器:ARMCC V5.06
  • IDE:Keil uVision5
  • 操作系统:Windows 10 专业版

API

  • void CAN_Configure(CAN_TypeDef *CANx, CAN_WorkMode WorkMode, CAN_BaudRate BaudRate, uint32_t StdId, uint32_t ExtId)
  • void CAN_Unconfigure(CAN_TypeDef *CANx)
  • void CAN_SetTransmitFinishCallback(CAN_TypeDef *CANx, void (*Callback)(void))
  • void CAN_SetReceiveFinishCallback(CAN_TypeDef *CANx, void (*Callback)(void))
  • uint32_t CAN_SetTransmitMessage(CAN_TypeDef *CANx, const CanTxMsg *Message, uint32_t Number)
  • uint32_t CAN_GetReceiveMessage(CAN_TypeDef *CANx, CanRxMsg *Message, uint32_t Number)
  • uint32_t CAN_GetUsedTransmitBufferSize(CAN_TypeDef *CANx)
  • uint32_t CAN_GetUsedReceiveBufferSize(CAN_TypeDef *CANx)
  • uint32_t CAN_GetUnusedTransmitBufferSize(CAN_TypeDef *CANx)
  • uint32_t CAN_GetUnusedReceiveBufferSize(CAN_TypeDef *CANx)
  • bool CAN_IsTransmitBufferEmpty(CAN_TypeDef *CANx)
  • bool CAN_IsReceiveBufferEmpty(CAN_TypeDef *CANx)
  • bool CAN_IsTransmitBufferFull(CAN_TypeDef *CANx)
  • bool CAN_IsReceiveBufferFull(CAN_TypeDef *CANx)
  • void CAN_ClearTransmitBuffer(CAN_TypeDef *CANx)
  • void CAN_ClearReceiveBuffer(CAN_TypeDef *CANx)
  • bool CAN_IsTransmitMessage(CAN_TypeDef *CANx)

注意

CAN 消息发送缓冲区和接收缓冲区的大小,可以根据应用的需求进行修改,缓冲区使用的是堆内存,需要根据缓冲区大小和应用程序中堆内存使用情况进行配置。