You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用python-can发送CAN报文(TX报文)

使用python-can库发送CAN TX报文

以下是使用python-can库发送CAN报文的完整实现示例,包含报文发送与自收验证逻辑:

代码示例

import can
bus = can.Bus(interface='vector',
              app_name='CANoe',
              channel=[0],
              receive_own_messages=True)

message = can.Message(arbitration_id=123,data=[0x11, 0x22, 0x33])
print("send msg:")
print(message)
bus.send(message, timeout=0.2)

print("received msg:")
print(bus.recv())
bus.shutdown()

运行输出

send msg:
Timestamp:        0.000000    ID: 0000007b    X Rx                DL:  3    11 22 33
received msg:
Timestamp: 1647263400.094132        ID: 0000    S Rx E              DL:  0

关键说明

  • can.Bus初始化时,interface='vector'适配Vector系列CAN硬件,app_name='CANoe'用于和CANoe工具联动,receive_own_messages=True开启自收模式,便于验证发送结果
  • can.Message用于构造CAN报文:arbitration_id为报文ID(示例中123对应十六进制0x7b),data字段为报文携带的原始数据
  • bus.send()方法执行报文发送,timeout参数设置发送超时阈值
  • bus.recv()用于接收总线报文,此处可接收自身发送的报文或总线上其他设备的报文

内容的提问来源于stack exchange,提问作者lion_li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:50:40