当前位置:   article > 正文

Python中CAN通讯学习_pythoncan端口不对通讯不上

pythoncan端口不对通讯不上

参考:python-can库基于PCAN-USB使用方法

          python-can简述_python can-CSDN博客

安装PCAN驱动

驱动程序: PEAK-System

驱动 - PEAK-System

ubuntu中安装pcan可参考:

Ubuntu 20.04.2 LTS 安装Pcan驱动和pcanview

安装库文件

  1. python.exe -m pip install --upgrade pip
  2. pip install --upgrade pip
  3. pip install python-can
  4. python -m pip install "python-can[viewer]"

参考代码如下:

  1. import can
  2. from can.interfaces.pcan import PcanBus
  3. import time
  4. # 初始化PCAN通道
  5. channel = "PCAN_USBBUS1" # 通道名称根据实际情况设置
  6. bus = PcanBus(channel=channel, bitrate=250000, is_extended_id=False)
  7. # msg = can.Message(arbitration_id=0x500, data=[00, 10, 20, 13, 14, 15, 16, 0x7F], is_extended_id=False)
  8. msg = can.Message(arbitration_id=0x500, is_extended_id=False, dlc=8)
  9. msg.data = [0, 0, 0, 0, 0, 0, 0, 0]
  10. msg.data[0] = 0x10
  11. msg.data[1] = 0x20
  12. msg.data[2] = 0x1A
  13. msg.data[3] = 0x10
  14. msg.data[4] = 0x10
  15. msg.data[5] = 0x10
  16. msg.data[6] = 0x10
  17. #msg.data[7] = 0xff
  18. #bus.send_periodic(msgs=msg, period=0.3) # 发送周期
  19. count = 0
  20. # 发送CAN消息
  21. try:
  22. while True:
  23. count += 1
  24. msg.data[7] = count
  25. bus.send(msg)
  26. print("发送的ID为 {} 数据为 {}".format(msg.arbitration_id, msg.data))
  27. time.sleep(0.1) #设置发送周期 100ms
  28. except can.CanError:
  29. print("通讯错误,消息未发送")
  30. finally:
  31. # 确保总线能够被正确关闭
  32. bus.shutdown()

python语法补充:

在空列表中python不能够直接通过索引赋值
以下是错的

  1. data = []
  2. data[0] = 0x1A
  3. data[1] = 0x1B
  4. print(data)

空列表向列表中添加元素,应该使用append()方法或者通过索引赋值的方式

  1. data = []
  2. data.append(0x1A)
  3. data.append(0x1B)
  4. print(data)

在非空列表中python能够直接通过索引赋值

  1. data = [0,0]
  2. data[0] = 0x1A
  3. data[1] = 0x1B
  4. print(data)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/591516
推荐阅读
相关标签
  

闽ICP备14008679号