• Python在Windows下操作CH341DLL


     1 #! /usr/bin/env python
     2 #coding=utf-8
     3 import os
     4 import time
     5 from ctypes import *
     6 
     7 class USBI2C():
     8     ch341 = windll.LoadLibrary("CH341DLL.dll")
     9     def __init__(self, usb_dev = 0, i2c_dev = 0x5c):
    10         self.usb_id   = usb_dev
    11         self.dev_addr = i2c_dev
    12         if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
    13             USBI2C.ch341.CH341SetStream(self.usb_id, 0x82)
    14             USBI2C.ch341.CH341CloseDevice(self.usb_id)
    15         else:
    16             print("USB CH341 Open Failed!")
    17 
    18     def read(self, addr):
    19         if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
    20             obuf = (c_byte * 2)()
    21             ibuf = (c_byte * 1)()
    22             obuf[0] = self.dev_addr
    23             obuf[1] = addr
    24             USBI2C.ch341.CH341StreamI2C(self.usb_id, 2, obuf, 1, ibuf)
    25             USBI2C.ch341.CH341CloseDevice(self.usb_id)
    26             return ibuf[0] & 0xff
    27         else:
    28             print("USB CH341 Open Failed!")
    29             return 0
    30 
    31     def write(self, addr, dat):
    32         if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
    33             obuf = (c_byte * 3)()
    34             ibuf = (c_byte * 1)()
    35             obuf[0] = self.dev_addr
    36             obuf[1] = addr
    37             obuf[2] = dat & 0xff
    38             USBI2C.ch341.CH341StreamI2C(self.usb_id, 3, obuf, 0, ibuf)
    39             USBI2C.ch341.CH341CloseDevice(self.usb_id)
    40         else:
    41             print("USB CH341 Open Failed!")
  • 相关阅读:
    PostMan使用教程(1)
    测试工作量的评估方法
    Jmeter之Bean shell使用(二)
    centos7 编译安装redis
    Centos7 安装mariadb
    Centos7 安装使用virtualenvwrapper
    Centos7安装python3.6
    linux基础命令2
    linux基础命令
    linux目录结构
  • 原文地址:https://www.cnblogs.com/lyuyangly/p/9025122.html
Copyright © 2020-2023  润新知