STM32是否具有CAN总线库以直接与CAN收发器连接?

时间:2018-10-30 04:52:59

标签: stm32 can-bus

许多STM32芯片组支持1或2通道CAN PIN输出。 是否有用于STM32的CAN总线库直接与诸如MCP2551的CAN收发器连接?但是,CAN收发器是什么都没有关系。

2 个答案:

答案 0 :(得分:3)

CAN收发器只是一个高速降压转换器。 (基本)

CAN协议可在各种电压范围内工作。 MCP2551是一套适用于12V和24V系统的CAN收发器。带有externally-controlled slope之类的有助于物理层的附加功能,以减少RFI排放,detection of ground faultvoltage brown-out protection等。
它与CAN逻辑无关。只是为了帮助您解决裸露的物理层。

回答您的问题:
按照RishabhHardas的建议,请使用STM32通过CubeMx提供的HAL库。

使用CubeMx
这是ST-Micro提供的软件,可帮助您为任何外围应用程序设置样板代码。
您也可以在Cube中查看STM提供的示例项目。这将使您开始了解STM32上的CAN。

  

STM32Cube_FW_F4_V1.9.0 \ Projects \ STM324xG_EVAL \ Examples \ CAN \ CAN_Networking

设置好之后,您可以通过包含标题来调用HAL_CAN_Transmit()HAL_CAN_Receive()
查看关于STM32社区的this讨论。

答案 1 :(得分:0)

对于软件,请在Github上查找CANtact开源项目。它是STM32F042的一种实现。我不得不修改该项目以在Atollic下构建它,但是它并不太难并且可以正常工作。它通过USB上的虚拟COM端口提供SLCAN类型的接口,这非常方便快捷。

STM32F103(Bluepill)(Google“ lawicel-slcan”)也有CAN代码,但是该芯片不方便,因为您不能同时使用CAN和USB(它们共享RAM缓冲区),因此如果如果需要CAN,则将没有USB,而通过UART路由CAN消息将严重限制带宽。如果您的整个应用程序都在STM32上运行,那可能没问题。