我试着用CAN通讯协议读取来自一个设备的数据。我正在使用Kvaser CAN-USB连接器和python-can,但是在发送消息之后,我得到以下信息:
这是我的密码:
import can
import time
bus=can.interface.Bus(bustype='kvaser',channel=0, bitrate=250000)
print (bus)
time.sleep(1)
msg =can.Message(arbitration_id=0x032)
print(msg)
time.sleep(1)
while True:
bus.send(msg)
recvMsg = bus.recv(timeout=0.5)
print (recvMsg)
time.sleep(1)下面是我得到的回应:
Kvaser Leaf Light v2, S/N 54781 (#1)
Timestamp: 0.000000 ID: 00000032 X DLC: 0
Timestamp: 1546613346.010231 ID: 0000 S E DLC: 4 00 01 00 00 Channel: 0根据手册,我必须使用以下方法:
这是我第一次使用这个通信协议,我已经阅读了python-can3.0的描述,但仍然不清楚如何解决这个问题。有什么建议吗?
发布于 2019-04-09 15:47:04
ID: 0000表示错误帧!
在脚本中设置arbitration_id=0x032,但是手册显示11位标识符: 0x031。
那是个错误吗?
你的网络看起来怎么样?你有多少个节点?
你把CAN总线终止了吗?
您为什么不使用来自Kvaser的PyCANlib?
https://stackoverflow.com/questions/54070270
复制相似问题