1

我想使用 python 来读取 can-bus,然后再通过 python 在总线上发送消息(我是一个完全的 python 新手,但有 C 和 C++ 知识)。所以我开始通过 pip 安装 python-can 模块。我想尝试的第一件事是只使用python-can-viewer从总线读取消息。我从峰值检查了与固件的连接,一切正常我可以看到我的罐头设备的心跳。但是 can-viewer 模块不会启动。

截屏

抱歉,错误按摩是德语的,它的意思是:

[WinError 126] 找不到指定的模块

我还尝试使用 python-can 中的一个简单示例

import can

can.rc['interface'] = 'pcan'
can.rc['channel'] = 'PCAN_USBBUS1'
can.rc['bitrate'] = 500000


def send_one():

    with can.interface.Bus() as bus:

        bus = can.interface.Bus()

        msg = can.Message(
            arbitration_id=0xC0FFEE, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True
        )

        try:
            bus.send(msg)
            print("Message sent on {bus.channel_info}")
        except can.CanError:
            print("Message NOT send")


if __name__ == "__main__":
    send_one()

我从https://python-can.readthedocs.io/en/master/得到了这个例子

我也遇到同样的错误,我还发现 winerror 126 可能与缺少 ddls 或库有关,所以我从 microsoft 安装了 x64 vc_redist,但它没有帮助https://support.microsoft.com/en-us/help/2977003 /the-latest-supported-visual-c-downloads

编辑:忘了提到这个网站https://python-can.readthedocs.io/en/3.3.2/installation.html

4

1 回答 1

0

我发现了问题,我没有在 windows/system32 文件夹中安装正确的 dll,我从https://www.peak-system.com/Downloads.76.0.html?&L=1下载了正确的 PCAN API 基本驱动程序软件

对于有同样问题的人,请下载适用于 Windows 的基本 API 驱动程序并在 system32 文件夹中获取 PCANbasic.DLL(您需要管理员权限)

于 2020-02-06T09:51:23.987 回答