目录

前言

尽管现在USB技术飞速发展,USB传输的速度在不断的提高,但是CY7C68013这款芯片在某些低速场景下仍然适用。因此,基于Python开发出其对应的上位机具有一定的现实需求。然而,笔者在实际开发过程中遇到了很多问题,最致命的问题就是Python如何接收到USB传来的数据,即驱动的安装。

现有的文章综合体来说给出了一个解决方案,但是写的比较晦涩难懂,亦或是不能解决笔者在实际开发中遇到的问题,故写下这篇文章记录一下基于Pyusb库的CY7C68013芯片上位机开发。

1、驱动安装

驱动的应该遵循以下步骤安装:

1)安装CySuiteUSB_3_4_7_B204.exe,这个是厂家提供的驱动,据说不适用于win10系统,后面需要更新;

2)在插上CY7C68013设备,在资源管理器中找到设备,手动更新驱动,指定文件夹为Win7_8_10_Drivers(文末提供);

3)下载libusb-1.0.20的压缩包,选择MS64\dll\libusb-1.0.dll,复制到C:\Windows\System32(文末提供libusb-1.0.dll,以及libusb-1.0.20的压缩包)

4)选择同目录下的libusb-1.0.lib到Python环境,我用的环境是conda的Python,所以就复制到C:\Anaconda3\Lib下(文末提供libusb-1.0.lib)

5)此时,务必使用zadig再一次安装驱动,打开zadig,找到设备EZ-USB,它默认的驱动是CYUSB,需要更新为libusb-win32,这一个过程时间可能稍长。另外,经过这一个操作以后,在win中的资源管理器里面已经找不到设备了,但是不妨碍我们使用,并且在开发中USB口不能够更换,否者也会找不到设备;

6)安装pyusb库,pycharm中可能找不到这个库,直接在Terminal中输入 pip install pyusb,回车即可

7)至此,USB的驱动已经全部开发完毕。

2、USB开发

在python开发USB真的非常简单,只需要简单的几句代码,对于高速的数据传输,建议新开一个线程专门用来接收数据

import usb.util

class MyUSB:

"""

操作USB相关的类

"""

# USB设备初始化

def __init__(self, idVendor=0x04B4, idProduct=0x1004): # idVendor=0x04B4, idProduct=0x1004

super().__init__()

self.USBData = 0 # USB接收到的数据

self.USBUpdateFlag = False # USB接收到数据更新

# USB设备信息

self.idVendor = idVendor

self.idProduct = idProduct

# USB设备对象

self.dev = None

# 接收USB数据

def rx_loop(self):

self.dev = usb.core.find(idVendor=self.idVendor, idProduct=self.idProduct)

if self.dev is None:

raise ValueError('Device not found')

else:

self.dev.set_configuration()

while True:

try:

a = self.dev.read(0x86, 1024, 1000)

print(a)

except Exception as e:

print(e)

# 写USB数据

def tx_loop(self):

while True:

try:

data = self.dev.write() # write(endpoint, data, timeout = None)

print(data)

except Exception as e:

print(e)

3、一些资源

python适用于哪些芯片_用pyusb在Python中开发CY7C68013,利用,PyUSB,进行,芯片,的,上位,机...相关推荐

  1. 新手入门python的注意事项_【新手入门Python语言的方法】

    2018年编程语言榜,Python位居榜首,很多学员对这门表示有着强烈的兴趣. 中公优教育小编这次就来谈谈Python入门方法. 下面直接进入今天的主题: 学编程,python算是一个不错的选择.因为 ...

  2. python定期自动运行_干货分享 | 适合 Python 入门的 8 款强大工具,不会就你还不知道吧!...

    点击上方"人工智能Corner","星标或置顶公众号" 干货分享,第一时间送达 Python是一种开源的编程语言,可用于Web编程.数据科学.人工智能以及许多科 ...

  3. python语言运行效率高_如何评价说PYTHON是最快的语言?

    我是视频的作者,首先感谢朋友们的关注,并且诞生了这个论题,让我可以看到大家对我视频中的观点的反馈.对于大家的讨论,在日常时间允许的条件下,我会尽量参与.下面就我目前已经看到的朋友们的评论,做一下展开. ...

  4. python交互式环境执行_如何在交互式环境中执行Python程序

    如何在交互式环境中执行Python程序 相信接触过Python的小伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同C d ...

  5. python怎么打日志_怎样调试 日志 python 代码

    展开全部 使用 pdb 进行调试 pdb 是 python 自带e5a48de588b662616964757a686964616f31333361306366的一个包,为 python 程序提供了一 ...

  6. python常用库教程_这几个python常用的库你必须知道!

    随着人工智能时代的到来,python变得更加流行.受欢迎,功能强大.简单易学.容易入门.应用广泛等,掀起了学习热潮,现在越来越多人转行都会学习python语言.为了让大家快速掌握python,今天为大 ...

  7. python入门第一课_入门第一课 Python入门涉及的问题及简单示例

    很多初学者都在问:我想自学Python,该怎样入门?入门选择哪些书籍? 下面,我以自己的理解作出解答. 1.先说明大体的学习进度. Python确实入门较为容易,语法清晰易懂.一旦入了门再想提高就和其 ...

  8. python国内书籍推荐_这些都是Python官方推荐的最好的书籍

    转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...

  9. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

最新文章

  1. php内置常用函数是哪些,PHP常用函数有哪些
  2. 如果理解运算符和各类数值的布尔值
  3. 汇编语言对显存直接输出字符串
  4. ITK:将两个图像加在一起
  5. OpenCV全向相机校准Omnidirectional Camera Calibration
  6. python 装饰器有哪些_python之装饰器
  7. Dell XP版本在非Dell机子上的激活问题
  8. C 常用新特性(下)
  9. [转载] Java三元运算符示例
  10. 嵌套字典|python_Python | 如果不是,则使用嵌套,根据销售额计算折扣
  11. 戏(细)说Executor框架线程池任务执行全过程(上)
  12. 苹果也“翻车”,服务器大面积宕机三小时
  13. 三星S10国行版发布 竟比国际版便宜?折叠屏手机也同期亮相
  14. tkinter label_tkinter版自制王者荣耀抽卡程序
  15. AtCoder Grand Contest 025 B - RGB Coloring
  16. typedef struct引起的结构体问题
  17. Ubuntu环境下NFS服务器搭建
  18. Linux入学—共享文件夹(保姆教程)
  19. HLW8032在stm32f413zh上的移植(基于HAL库)
  20. Epsilon-Greedy算法

热门文章

  1. TypeScript里string和String,真不是仅仅是大小写的区别
  2. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU
  3. 一文带你全面了解java对象的序列化和反序列化
  4. 容器、Docker、虚拟机,别再傻傻分不清
  5. 【华为云技术分享】MongoDB经典故障系列三:副本集延迟太高怎么办?
  6. 一文读懂Python web框架和web服务器之间的关系
  7. 使用inspector功能查看和管理契约
  8. 关于计算机硬盘属性对话框中,计算机文化基础练习题(2).docx
  9. C# 委托和事件 (三)
  10. isinstance()函数的应用