自己开发FT4222上位机软件 - USB转SPI

写作背景

  最近公司有个项目,让开发一个能够同时进行千兆网接收和SPI配置的上位机软件,开发语言不限,所以作者选择Python + PyQt作开发,做嵌入式固件开发的读者可能知道还需要一块USB转SPI的模块才能进行上下位机正常SPI读写,项目团队成员建议模块从淘宝网购买就好,作者经过调研对比,感觉从芯片质量到开发配套上来讲,FTDI的FT4222模块是最优选择。但令作者感到不快的是淘宝商家不提供模块板子原理图也不提供上位机参考源码,如果需要提供,需另外花钱购买,哎,一言难尽。作者觉得商家这样做完全没有必要,所以,作者决定写一篇简单的博文将这段核心的上位机源码放出来,以便读者能参考,以加快项目开发进度。

USB转SPI上位机开发简介

  FTDI Chip 将易于实现的 IC 设备和经过验证的免费 USB 固件及软件驱动相结合,提供了实现 USB 的便捷方式,其产品具有高集成度、低功耗、易于使用等特点,实际上FTDI Chip已经为开发者提供了支持主流上位机开发语言的LIB库,这里我们主要介绍libFT4222 的 Python 包装器,安装很简单,执行 pip install ft4222 即可自动安装完毕。详细的API介绍点击这个链接即可:python-ft4222,打开链接里面有详细的工程样例。作者将项目中用到的主要的与控制FT4222相关的python源码部分放在下面供交流学习。

  • 打开并找到FT4222设备槽函数:
def spi_ft4222_device_flash_handler(self):
        """
        Info:
            Author      : 
            Desc        :
            Example     :
        """
        global dev_num
        global dev
        dev_num = ft4222.createDeviceInfoList()
        if dev_num == 0:
            self.__ui.textBrowser_receive.clear()
            self.__ui.label_device.setText('请插入设备')
            self.__ui.label_device.setStyleSheet("color:red")
            self.__ui.textBrowser_receive.append("设备未连接")
            pass
        else:
            if self.__ui.label_device.text() == "FT4222-A":
                pass
            else:
                self.__ui.textBrowser_receive.clear()
                # open device with default description 'FT4222 A'
                dev = ft4222.openByDescription('FT4222 A')
                self.__ui.textBrowser_receive.append("设备已连接")
                for i in range(dev_num):
                    self.__ui.textBrowser_receive.append('设

你可能感兴趣的:(嵌入式系统,python,单片机,模块测试)