0

在这里使用 python-can 库。这是一个打印出罐头消息的简单代码:

from can.interface import Bus

bus = Bus(bustype='pcan', channel='PCAN_USBBUS1', bitrate=500000)
for msg in bus:
    print(msg)

它运行得很好,直到我停止程序(在 Pycharm IDE 中运行它)并尝试再次运行它。它将显示此错误:

can.interfaces.pcan.pcan.PcanError: A PCAN Channel has not been initialized yet or the initialization process has failed

我不明白为什么会这样。它可以通过“重新启动”程序来修复,方法是重新插入 CAN 加密狗或重新启动 Pycharm。是因为前一个实例被缓存在某个地方吗?不胜感激这方面的建议。

4

2 回答 2

0

如果我没记错的话,你永远不会关闭总线的第一个实例。您必须bus.shutdown()在脚本结束时调用。如果您在再次运行之前没有调用bus.shutdown()它,那么您正在尝试实例化并且已经存在的总线实例。

于 2020-06-30T18:41:35.837 回答
-1

当您的应用程序不会使用 CAN_UnInitialize() 关闭通道时,或者当您使用调试器中断应用程序时,就会发生这种情况。因此,请在关闭应用程序之前取消初始化通道,或重新启动系统一次。

于 2019-05-14T11:53:20.167 回答