FTDI FTD2XX 驱动学习笔记(一)
文章目录
- 一、 简介
- 二、常用的D2XX 函数
- 参考文献
注:转载请注明出处
作者:雪天鱼,,
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。
Version | Date |
---|---|
1.0 | 2021.12.24 |
FTDI 为其驱动程序提供 DLL 和虚拟 COM 端口 (VCP) 应用程序接口,现主要学习 FTD2XX 驱动。
一、 简介
FTDI的 D2XX 驱动下载链接:D2XX
可以选择直接使用 CDM 驱动安装程序进行安装,CDM驱动包含了D2XX 和 VCP两种驱动。
- VCP:在系统设备管理器中显示为COM端口,提供了交互API。
- D2XX:通过FTD2XX.DLL实现,提供 COM端口 API不具备的一些功能,例如将设备设置为不同的模式或将数据写入设备EEPROM。
其中 D2XX 是针对FTDI设备设计的专用驱动,不支持其他设备。
windows下CDM驱动架构如图1所示:
图1 Windows下 CDM驱动架构
可以看到D2XX驱动和VCP驱动都是在 USB Host Controller 驱动基础上建立的。
二、常用的D2XX 函数
D2XX驱动程序能够通过DLL直接访问USB设备。 应用程序可以通过一系列的DLL函数调用访问USB设备。D2XX 驱动的函数库提供了很多API,其中常用的函数如图2所示:
图2 D2XX 常用函数
这些函数基本能满足绝大部分的用户需求了。
简单例举几个函数的功能,不做深入研究,为后续写USB设备驱动程序做准备:
- FT_SetVIDPID
- FT_GetVIDPID
- FT_CreateDeviceInfoList
参考文献
【1】D2XX Programmer’s Guide
FTDI FTD2XX 驱动学习笔记(一)相关推荐
- 转载:mongoDB java驱动学习笔记
http://www.blogjava.net/watchzerg/archive/2012/09/22/388346.html mongoDB java驱动学习笔记 指定新mongo实例: Mong ...
- 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】
目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...
- 【嵌入式环境下linux内核及驱动学习笔记-(15-1)例程】
目录 1.在APP直接调用标准文件IO操作I2C(针对学习笔记-15的15.3节) 1.1 mail.c 1.2 mpu6050.h 1.3 mpu6050.c 1.4 Makefile 2.以外称i ...
- Linux 驱动学习笔记 - beep(九)
Linux 驱动学习笔记 - beep(九) 本系列均为正点原子 Linux 驱动的学习笔记, 以便加深笔者记忆.如读者想进一步学习,可以到正点原子官网中下载资料进行学习. 添加 pinctrl 节点 ...
- Linux驱动学习笔记
驱动学习笔记 1.字符设备驱动 Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中,这样当 Linux 内核启 动的时候就会自动运行驱动程序. 第二种就是将驱动编译成模块(Li ...
- 驱动学习笔记 IRP
在学习内核过滤驱动的过程中,遇到了大量的涉及IRP操作的代码,这里有必要对IRP的数据结构和与之相关的API函数做一下笔记. 1. 相关阅读资料 <深入解析 windows 操作系统(第4版,中 ...
- IMX6ULL嵌入式Linux驱动学习笔记(二)
IMX6ULL嵌入式Linux驱动学习 一.字符设备驱动 二.驱动模块的加载与卸载 三.字符设备的注册与注销 四.设备号 五.file_operations的具体实现 六.字符设备驱动框架 七.编写应 ...
- hi3536 pcie驱动学习笔记
Hi3536 PCIE学习笔记2(linux3.10.y) 一.PCI总线简单介绍 1.PCI总线配置 两类配置请求:Type00h配置请求,Type 01配置请求.Type 00h配置请求:访问与H ...
- linux2.6驱动学习笔记之字符驱动
1.字符驱动组成 1.1字符驱动的模块加载与卸载 //设备结构体模板 struct xxx_dev_t { struct cdev cdev; ...... }xxx_dev; 在字符驱动模块加载函数 ...
最新文章
- 指定某行复制多次的方法
- python基础系列教程——python所有包库的下载
- REST、SOAP、protocolbuf、thrift、avro
- Java自定义JSlider UI
- RAC中参数文件的配置
- Clover_v2.3k版本合集 四叶草EFI文件、Pkg安装包
- [VC++]控制台程序窗口隐藏
- [STM32]WIN7 64位系统 CDC类 虚拟串口驱动无法安装的解决办法
- C与C++学习经典网站
- 微信小程序生成携带参数的小程序码
- 南传法句经(摘选)03
- [转载]Navicat12.1系列破解教程,Navicat12.1.16破解亲测有效!!
- WIN10桌面图标变成白文件的一种解决方法
- OpenCV——图像特征提取(颜色:HSV与形状)
- 小米电视是鸿蒙系统吗,搭载鸿蒙系统!华为正式发布荣耀智慧屏 小米电视迅速升级取消开机广告...
- 大疆工程师:如何利用6年时间成为一名优秀的机器人工程师
- python agg函数_个人对Pandas中agg、apply和transform函数的理解
- 解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa7 in position 85: illegal multibyte sequence
- IDEA初学者保存就格式化代码插件save actions
- 基于JAVA、Web的农产品销售管理系统(附源码视频资料数据库教程视频文档)