Python中文
首页
教程
问答
标签
搜索
登录
注册
使用FTDI D2XX驱动程序和raspbian s上Raspberry Pi的Python
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我们有一个由FTDI的D2XX驱动程序控制的USB设备。它目前是通过一个Python接口从Windows机器上控制的,作为一个有趣的项目,我试着将控件移到一个树莓Pi(大约是PC成本的1/10,不包括操作系统成本)。</p> <p>有许多障碍需要清除,但几周后,我终于找到了所有的答案,并让它发挥作用。答案被散布在几个论坛上,作为对Stack Overflow社区的感谢,我想我会把它们整合在这里。</p> <p>首先,项目要求:</p> <ul> <li>一个操作系统:我从<a href="http://www.raspberrypi.org/downloads" rel="nofollow noreferrer">Raspberry Pi webpage</a>中获取了最新的<a href="https://en.wikipedia.org/wiki/Debian#Release_timeline" rel="nofollow noreferrer">"Wheezy"</a>Raspbian(硬浮点2012-12-16)。这包括Python。</li> <li>与我们的FTDI设备通话的<a href="http://www.ftdichip.com/Drivers/D2XX.htm" rel="nofollow noreferrer">FTDI D2XX drivers</a>。</li> <li>D2XX驱动程序的Python接口。我用了<a href="http://bleyer.org/pyusb/" rel="nofollow noreferrer">PyUSB</a></li> <li>我们的Python脚本</li> </ul> <p>我下载了喘息分发版,并使用Win32DiskImager写入4gb的SD卡。覆盆子皮没有问题。然后我解包了D2XX库(libftd2xx.so),并将其安装到<code>/usr/local/lib</code>。</p> <p>PyUSB(1.6)目前只在Windows上测试,但它们提供了源代码。为覆盆子皮编译一个副本非常简单。基本上,修改setup.py以链接到libftd2xx.so库(无需复制)。还可以编辑d2xx/_d2xx.c来注释掉没有Linux实现的例程(当前是ftobj_Rescan,ftobj_Reload ftobj_GetComPortNumber)。将WinTypes.h和ftd2xx.h从FTDI D2XX驱动程序下载目录(在发行版中)复制到FTDI-win32中,并运行<code>python setup.py install</code>,这将编译并安装Python模块。</p> <p>完成所有这些之后,我编写了一个简单的Python脚本来与FTDI芯片对话。注意您需要通过sudo运行。</p> <pre><code>import d2xx jd = d2xx.open(0) pd = jd.eeRead() print pd </code></pre> <p>d2xx模块似乎找不到libftd2xx.so文件。所以,我调整了setup.py脚本以链接到库的静态副本libftd2xx.a.Voila,我得到了问题的第一个线索:D2XX库是使用软浮点构建的,而我的喘息分布被配置为使用浮点寄存器。也就是说,我系统上的gcc生成的代码与d2x库的二进制不兼容,并且不允许链接到它们。</p> <p>为了解决这个问题,我下载了<a href="http://www.raspberrypi.org/downloads" rel="nofollow noreferrer">soft-float debian "wheezy" distribution</a>(2012-08-08)并写入了4gb的SD卡。这次映像无法启动。环顾四周,我发现了这个<a href="https://raspberrypi.stackexchange.com/questions/2140/cant-boot-wheezy">helpful answer</a>。简而言之,软浮动的启动映像有问题,因此对于一些覆盆子Pi板,它不会启动。解决方案是将软浮点发行版上的start.elf文件替换为一个有效的文件,例如从硬浮点Raspbian图像复制。幸运的是,SD卡有两个分区:胖分区和ext3(?)一个。启动映像位于胖分区上,因此将硬浮动SD卡弹出到Windows框中、复制start.elf文件、弹出软浮动SD卡并用硬浮动SD卡更新其start.elf是很简单的。之后,覆盆子皮启动没有问题。</p> <p>在安装了FTDI的d2x驱动程序并从PyUSB构建了d2xpython模块之后,我再次尝试测试脚本。又失败了。d2xx模块可以读取libftd2xx。因此库没有问题,但由于某种原因,无法与设备通信。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>libftd2xx 1.1.12的一个特殊版本修复了覆盆子pi上的问题。那可能会解决你的问题。</p> <p>我忘了在哪儿找到的,但我在网站的下载页上有一个副本,<a href="http://lightput.com/download.html" rel="nofollow">Lightput Download page</a>。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
1 回答
如何替换字典中所有出现的指定字符
9 回答
如何替换字典中所有键的第一个字符?
10 回答
如何替换字典所有键中的子字符串
7 回答
如何替换字符串python中的变量值?
6 回答
如何替换字符串Python中的第二次迭代
7 回答
如何替换字符串y Python中不等于字符串x的所有内容?
7 回答
如何替换字符串中出现的第n个单词?
2 回答
如何替换字符串中单词的一部分
5 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
1 回答
如何替换字符串中指定位置(索引)的字符?
3 回答
如何替换字符串中某个字符的所有匹配项?
4 回答
如何替换字符串中的
2 回答
如何替换字符串中的一个字符
5 回答
如何替换字符串中的主题(固定位置)
3 回答
如何替换字符串中的分隔逗号?
1 回答
如何替换字符串中的列名(python)?
4 回答
如何替换字符串中的制表符?
10 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
7 回答
如何替换字符串中的单个字符?
5 回答