FT4222模块树莓派使用

关于FT4222设备

FT4222是一款功能强大的USB到SPI/I2C/GPIO的转接器桥,由芯片制造商FTDI(Future Technology Devices International Ltd.)开发和生产。该模块可以将USB接口转换为SPI,I2C接口或GPIO接口,从而方便地连接和控制外部设备。在QuadSPI master模式下,可以达到53.8Mbps的速率。
产品资料链接:Products/FT4222HQ

软件库及示例下载参考页FT4222H软件示例:
在本文中,介绍树莓派相关,使用libft4222-linux-1.4.4.44版本。
最新版本为:libft4222-linux-1.4.4.170

树莓派安装驱动

树莓派硬件平台:树莓派 3B
系统:ubuntu-22.04.4-preinstalled-desktop-arm64

$cat /etc/os-release

系统版本信息插上UWB Dongle模块,可以看到FT4222设备,信息如下:
$lsusb
在这里插入图片描述ID 0403:601C Future Technology Devices International, Ltd FT4222

关于驱动的安装

1、解压安装文件
$tar zxvf libft4222-1.4.4.44.tgz

解压得到以下目录:

build-arm-v6
build-i386
build-x86_64
examples
libft4222.h
ftd2xx.h
WinTypes.h
install4222.sh

2、运行安装脚本,根据系统硬件将相关库文件拷贝到/usr/local/lib/usr/local/include目录,同时创建与版本无关的符号链接,libft4222.so。

3、安装测试:

cd examples
cc get-version.c -lft4222 -Wl, -rpath,/usr/local/lib
sudo ./a.out

若无设备连接,则返回:No devices connected。
若检测到设备,则返回设备信息:
在这里插入图片描述

Python中使用

在Python中使用时,需要加载ft4222库以及ftd2xxx库。
pip install ft4222==1.8.1
pip install ftd2xx==1.3.3

import ft4222
# 获取FT4222 设备信息,FT4222 A为SPI Master
# FT4222 B为GPIO接口(GPIO 0,1,2,3)
number_of_devices = ft4222.createDeviceInfoList()
# 获取设备信息
device_info = ft4222.getDeviceInfoDetail(idx, False)# 获取设备接口
ftdi_spi_interface = ft4222.openByLocation(device_info['locatiton'])# 打印设备信息
print("SPI Interface Information:")
print("Location: " + str(device_info[0]['location']))
print("Serial Number: " + str(device_info[0]['serial']))
print("Description: " + str(device_info[0]['description']))
print("Type: " + str(device_info[0]['type']))
print("Id: " + str(device_info[0]['id']))
print("Index: " + str(device_info[0]['index']))
print("Flags: " + str(device_info[0]['flags']))
print("Handle: " + str(device_info[0]['handle']))
print("")
#print device
print("GPIO Interface Information:")
print("Location: " + str(device_info[1]['location']))
print("Serial Number: " + str(device_info[1]['serial']))
print("Description: " + str(device_info[1]['description']))
print("Type: " + str(device_info[1]['type']))
print("Id: " + str(device_info[1]['id']))
print("Index: " + str(device_info[1]['index']))
print("Flags: " + str(device_info[1]['flags']))
print("Handle: " + str(device_info[1]['handle']))

*注1:非完整示例代码,仅显示基本操作示例。
*注2:在运行python代码时,需要使用sudo权限。

输出信息如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511376.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fantasy UI

有了这个包,你可以获得一个完整的幻想rpg游戏ui的psd源文件。 下载:​​Unity资源商店链接资源下载链接 效果图:

阿里云创建的SpringBoot项目打包时找不到主清单属性

原因是因为maven配置文件中有一个打包属性配置 <configuration><mainClass>com.yang.ExamSystemApplication</mainClass><!-- 找到这个<skip>true</skip>标签关闭&#xff0c;或者属性改为false --><skip>true</skip> </c…

40个Python字符串实例

Python 字符串是 Python 编程语言中最常用的数据类型之一&#xff0c;它可以表示文本或一组字符。Python 中的字符串是不可变的序列&#xff0c;意味着一旦创建&#xff0c;其值就不能被修改。下面是一些关于 Python 字符串的介绍。 概述 创建字符串&#xff1a;可以使用单引…

通过zabbix监控docker宿主机

通过Zabbix监控Docker主机及其容器&#xff0c;您可以利用Zabbix Agent2的内置功能来收集和报告Docker容器的相关指标。以下是基本步骤概要&#xff1a; 安装与配置Zabbix Agent2&#xff1a; 在Docker主机上安装Zabbix Agent2。确保Agent2能够访问Docker守护进程&#xff0c;并…

Tomcat常见配置(基础功能、虚拟主机、搭建博客)

目录 一、Tomcat基础功能 1、自动解压war包 2、Tomcat工具界面 2.1 Server Status (服务器状态) 2.1.1 本地登录状态页 2.1.2 远程登录状态页 2.2 Manager App (管理应用程序) 2.3 Host Manager (主机管理器) 3、Context 配置 二、配置虚拟主机 三、搭建 JPress 博客…

如何处理微服务之间的通信和数据一致性?

✨✨祝屏幕前的兄弟姐妹们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、微服务通信 1、同步通信&#xff1a;HTTP 1.1.同步通信示例代码&#xf…

【学习】torchvision.datasets.ImageFolder()

在分类任务中&#xff0c;数据集文件存储往往是如下形式&#xff1a; - train- class1- image1.jpg- image2.jpg...- class2- image1.jpg- image2.jpg......此时&#xff0c;我们想要获取图片和标签&#xff0c;标签即为文件名&#xff08;class1、class2…&#xff09; 可以使…

微软多兴趣召回:Octopus

Octopus: Comprehensive and Elastic User Representation for the Generation of Recommendation Candidates 背景&#xff1a; 多兴趣通道(channel)结构的多兴趣召回模型在兴趣通道数量上面存在两个问题 兴趣通道较少&#xff0c;不能充分学习到用户的多个兴趣。兴趣通道较…

学c++对Python有帮助吗?

学习C对Python编程确实有帮助&#xff0c;尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面&#xff1a; 理解底层概念&#xff1a;C是一种更接近硬件的编程语言&#xff0c;它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…

【鸿蒙 HarmonyOS 4.0】应用状态:LocalStorage/AppStorage/PersistentStorage

一、介绍 如果要实现应用级的&#xff0c;或者多个页面的状态数据共享&#xff0c;就需要用到应用级别的状态管理的概念。 LocalStorage&#xff1a;页面级UI状态存储&#xff0c;通常用于UIAbility内、页面间的状态共享。AppStorage&#xff1a;特殊的单例LocalStorage对象&…

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说&#xff0c;企业的客户端上都只能配置一个运营商的DNS服务器地址&#xff0c;DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址&#xff0c;这将导致内网用户的上网流量都集中在一个ISP的链路上转发&#xff0c;最终可能会造成链路拥塞&…

java数据结构与算法刷题-----LeetCode637. 二叉树的层平均值

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 广度优先2. 深度优先 解题思路&#xff1a;时间复杂度O(n)&am…