CAN 开源库大全(嵌入式/上位机,适配STM32、Linux、Qt,附带Github地址)

一、嵌入式底层CAN库(MCU端,STM32/H7常用)

1. bxCAN(ST官方HAL库自带)

地址:ST HAL库内置

说明:STM32片上CAN外设标准驱动,bxCAN,支持CAN2.0A/B,不用额外移植,H7直接可用;缺点只支持传统CAN,不支持CAN FD。

2. CAN FD Driver for STM32

地址:https://github.com/STMicroelectronics/STM32CubeH7

说明:STM32H7自带CAN FD外设官方驱动,支持CAN FD,工程直接在CubeMX生成。

3. libcanard

地址:https://github.com/UAVCAN/libcanard

说明:UAVCAN协议栈,嵌入式轻量CAN应用层,无人机/机器人常用,C语言,资源占用小,支持CAN2.0。

4. canfestival

地址:https://github.com/CanFestival/canfestival

说明:经典CANopen协议栈,工业设备最常用,C语言,支持主站/从站,可跑在STM32、Linux,适合工业传感器。

二、Linux上位机CAN库(SocketCAN)

1. socketcan-utils

地址:https://github.com/linux-can/can-utils

说明:Linux原生SocketCAN工具集,cansend/candump/canutils,命令行调试必备。

2. libsocketcan

地址:https://github.com/linux-can/libsocketcan

说明:SocketCAN C封装库,简化Linux下CAN读写开发。

三、Qt / C++ 上位机CAN库(适合你做QT历险记)

1. QCanBus(Qt官方内置)

地址:Qt框架自带(QtSerialBus模块)

说明:Qt原生CAN组件!支持SocketCAN、PEAK、Vector等适配器,C++,Qt项目直接引入,做上位机首选。

2. CANoe-API Wrapper(第三方封装)

地址:https://github.com/ruisheng4949/CANWrapper

说明:C++封装,适配多种CAN适配器。

四、Python CAN库(快速仿真、测试脚本)

1. python-can

地址:https://github.com/hardbyte/python-can

说明:跨平台,支持SocketCAN、PEAK、PCAN,写测试脚本首选。

五、补充选型速记卡片文字(放9:16图片)

CAN开源库选型

✅ STM32底层:HAL bxCAN(CAN2.0)、ST官方H7 CANFD驱动

✅ 工业协议:CanFestival(CANopen)、libcanard(UAVCAN)

✅ Linux上位:socketcan + libsocketcan

✅ Qt上位机:QCanBus(QtSerialBus)

✅ Python测试:python-can

⚠️区分:底层驱动(收发报文) vs 应用层协议(CANopen/UAVCAN)

底层只是收发原始CAN报文;应用层定义数据解析规则。

相关推荐
自律懒人1 小时前
REA 从零上手:81K Star 逆向工具,5 步接进 AI 编程 Agent
开源
java_logo1 小时前
Docker 部署 Halo:轻松搭建开源个人博客
docker·容器·开源·博客·开源博客·halo·轩辕镜像
一次旅行1 小时前
2026.10.13 AI产业深度解读|硬件互联标准更新;Agent工程启示;开源社区AI政策转向;游戏与科研AI双线突破
人工智能·游戏·开源
SL_staff1 小时前
OKR落地难?技术团队如何用五层联动链打通执行断层
java·开源·全栈
BT-BOX2 小时前
2026最新Keil 5软件下载安装详细教程含MDK和C51(附下载链接)
stm32·proteus
AAA代码批发商2 小时前
DAYS 56【Linux 驱动深度】SPI 子系统驱动开发全指南:从架构、核心数据结构到设备驱动实战
linux·驱动开发·架构·内核开发·spi 子系统
用户117910488332 小时前
每个会话一个子进程:多会话真并行的架构取舍
开源·harmonyos
听雨笑2 小时前
终端窗口关掉了,正在跑的活会不会死:三种起法各自的下场
linux
TTATTC2 小时前
定时增量每 5 秒全表扫一遍?我用 DBSyncer 跑了三组对照实验才找到原因
docker·开源