许多STM32芯片组支持1或2通道CAN引脚输出。是否有用于STM32与MCP2551等CAN收发器直接连接的CAN总线库?但是CAN收发器是什么并不重要。
发布于 2018-11-04 15:58:10
CAN收发器只是一个高速降压转换器。(在基本级别上)
CAN协议适用于不同的电压范围。MCP2551是一款适用于12V和24V系统的set CAN收发器。通过增加的功能来帮助物理层,如externally-controlled slope,以减少射频干扰排放、detection of ground fault、voltage brown-out protection等。
它不依赖于CAN逻辑。它只是为了帮助您使用裸露的物理层。
回答你的问题:
按照RishabhHardas的建议,通过CubeMx使用STM32提供的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讨论。
发布于 2019-12-22 11:23:36
对于软件,请在Github上查找CANtact开源项目。它是STM32F042的一个实现。我不得不调整项目,以在Atollic下构建它,但它并不太难,而且很有效。它通过USB的虚拟COM端口提供了SLCAN类型的接口,这是非常快速和方便的。
也有用于STM32F103 (Bluepill)的CAN代码(谷歌"lawicel-slcan"),但该芯片并不方便,因为您不能同时使用CAN和U盘(它们共享内存缓冲区),所以如果您想要CAN,您将没有U盘,并且通过UART路由CAN消息将严重限制带宽。如果您的整个应用程序在STM32上运行,这可能是可以的。
https://stackoverflow.com/questions/53057645
复制相似问题