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报文;应用层定义数据解析规则。

相关推荐
1024奇点18 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
HideF19 小时前
Linux sudo
linux
FlightYe20 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎20 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
冬奇Lab21 小时前
一天一个开源项目(第252篇):Lightpanda —— 用 Zig 从零写的 AI 专用无头浏览器,内存省 16 倍、速度快 9 倍
人工智能·开源·资讯
IT召唤狮21 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
牛马鸡niumasi1 天前
【Linux】C语言文件操作
linux
say_fall1 天前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wflynn1 天前
GitHub 日榜趋势速报 | 2026-11-02
开源·github
wacsii1 天前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器