标签: usb

如何在Linux中通过USB从i2c设备检索数据

我有一个温度传感器,该温度传感器使用USB-I2C适配器(http://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm)连接,并将该设备连接到linux计算机(suse10)。我输入dmesg并看到

usb 3-3: new full speed USB device using ohci_hcd and address 10
usb 3-3: new device found, idVendor=0403, idProduct=6001
usb 3-3: new device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-3: Product: FT232R USB UART
usb 3-3: Manufacturer: FTDI
usb 3-3: SerialNumber: A7007K93
usb 3-3: configuration #1 chosen from 1 choice
ftdi_sio 3-3:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 3-3: FTDI USB Serial Device converter now attached to ttyUSB0
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何读取当前温度。

更新1:实际上,I2C总线最多可以连接127个传感器。但是我不知道如何列出可用传感器的地址。

有人可以给我一些提示吗?提前致谢

linux usb i2c

2
推荐指数
1
解决办法
7816
查看次数

用电脑控制MSP430(USB?)

我希望通过TI MSP430或类似设备从我的计算机控制一堆LED.
我的电脑是Macbook Air,所以看起来我唯一能与之通信的端口是USB.MSP430有一个USB端口,但除了编程芯片之外,我找不到任何有关使用USB端口的信息.有没有办法解决这个问题,使用USB与电路板通信?

谢谢!

embedded usb msp430 texas-instruments

2
推荐指数
2
解决办法
5534
查看次数

如何从便宜的通用USB设备读取?

我从eBay那里买了一台便宜的RFID阅读器,只是为了玩.没有API,它只是写入stdin- 它说,如果你打开记事本并点击RFID标签到阅读器,其ID号出现在记事本窗口中.

我正在寻找具有实际API(任何建议?)的价格合理的读写器.

在那之前,我需要使用我拥有的东西来快速演示,只是为了证明这个概念.

如何最好地拦截USB连接的输入?(并且有免费的VCL控制来执行此操作吗?)

我想如果我只有一个带有控件的模态形式,那么我可以挂钩它的更改事件.但模态形式似乎有点粗鲁.也许我可以挂钩键盘输入,因为它似乎注入像类型字符?

任何的想法?请告诉我,如果我没有足够清楚地解释这一点.

在此先感谢您的帮助.


最后,我只是挂了键盘,而不是试图拦截USB.如果我检查我的应用程序是否处于活动状态并以其他方式传递击键,则它可以工作.我的应用程序没有任何键盘输入,只有鼠标点击(我从RFID读取的只是数字,所以我仍然可以处理像Alt + F4这样的东西.也许不是每个人的完美解决方案,但所有我能得到的工作)

delphi usb hook

2
推荐指数
1
解决办法
1941
查看次数

连接到设备时更改pySerial中的波特率?

我正在尝试为一个名为uLCD32-pt的LCD设备编写一个脚本,问题是您需要以波特率9600连接它,并且为了获得更高的波特率,您必须连接它,发送更改波特率命令,然后以新设置的波特率发送新命令.在绘制像素时,我的液晶显示器显得非常慢,我知道它因为波特率,所以在连接到设备后,他们有什么方法可以改变波特率?到目前为止,这是我的代码?

import serial
import time

#Connect to uLCD32-pt with autobaud
ser = serial.Serial(
    port='/dev/ttyUSB0', 
    baudrate=9600, 
    timeout=1,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)
ser.write("U")


while(True):
    #15 x white pixels
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0001)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#1
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0002)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#2
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0003)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#3
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0004)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#4
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0005)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#5
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0006)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#6
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0007)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#7
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0008)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#8
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0009)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#9
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000A)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#10
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000B)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#11
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000C)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#12
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000D)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#13
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000E)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#14
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x000F)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#15
    ser.write(chr(0x0050)+chr(0x0000)+chr(0x0010)+chr(0x0000)+chr(0x000A)+chr(0x00FF)+chr(0x00FF))#16
Run Code Online (Sandbox Code Playgroud)

python usb lcd pyserial baud-rate

2
推荐指数
2
解决办法
1万
查看次数

在Linux源代码中,对特定USB设备的识别发生了什么?

我有一个特定的USB设备,其Linux驱动程序源代码我想检查.我的理解是USB驱动程序采取的第一步是注册自己能够处理具有特定供应商ID和产品ID的设备.就我而言,供应商ID是0BDA,产品ID是8187.鉴于此信息,有没有一种方法可以找到将自身注册为能够处理此设备的源文件,以便找出实际执行驱动程序详细信息的其他源文件?

作为参考,我在内核上3.2.0-26.我试过了grep -rl 8187 /usr/src,但这列出了一大堆文件,我不知道从哪里开始.

linux usb kernel driver

2
推荐指数
1
解决办法
814
查看次数

不支持混合类型

请查看以下头文件

#pragma once
using namespace UsbLibrary;

ref class MissileLauncher
{
public:
    MissileLauncher(void);

private:
    //Bytes used in command
    unsigned char UP[10];
    unsigned char RIGHT[10];
    unsigned char LEFT[10];
    unsigned char DOWN[10];

    unsigned char FIRE[10];
    unsigned char STOP[10];
    unsigned char LED_OFF[9];
    unsigned char LED_ON[9];

    UsbHidPort USB;
};
Run Code Online (Sandbox Code Playgroud)

我在visual studio professional 2010中使用Visual C++项目(C++/CLI?).当我运行此代码时,我遇到了很多错误

Error   1   error C4368: cannot define 'UP' as a member of managed 'MissileLauncher': mixed types are not supported 
Error   2   error C4368: cannot define 'RIGHT' as a member of managed 'MissileLauncher': …
Run Code Online (Sandbox Code Playgroud)

usb dll c++-cli visual-studio-2010

2
推荐指数
1
解决办法
1万
查看次数

如何在服务项目中获得一个插入的USB驱动器号?

我总是使用覆盖WndProc(ref Message m)的方法来获取插入/删除驱动器的事件,并创建我自己的eventarg以返回驱动器号.这完美地工作但现在我正在忙于开发服务项目,显然不能使用上述方法.

我现在正在使用WMI:

    //insert
    WqlEventQuery creationQuery = new WqlEventQuery();
    creationQuery.EventClassName = "__InstanceCreationEvent";
    creationQuery.WithinInterval = new TimeSpan(0, 0, 2);
    creationQuery.Condition = @"TargetInstance ISA 'Win32_DiskDriveToDiskPartition'";
    ManagementEventWatcher creationWatcher = new ManagementEventWatcher(creationQuery);

    creationWatcher.EventArrived += new EventArrivedEventHandler(USBEventArrived_Creation);
    creationWatcher.Start();
Run Code Online (Sandbox Code Playgroud)

插入USB闪存时,这可以正确地触发事件.现在我需要帮助的是如何从事件中获取驱动器号(例如E :)?

这是我到目前为止在我的活动中玩过的:

    internal void USBEventArrived_Creation(object sender, EventArrivedEventArgs e)
    {
        EventLog.WriteEntry("USB PLUGGED IN!");
        ManagementBaseObject instance = (ManagementBaseObject)e.NewEvent["TargetInstance"];
        foreach (var property in instance.Properties)
        {
            EventLog.WriteEntry(property.Name + " = " + property.Value);

        }
    }
Run Code Online (Sandbox Code Playgroud)

我无法从"属性"中获取驱动器号.有没有办法得到驱动器号?或者我是否需要从完全不同的角度来看问题?

.net c# usb service

2
推荐指数
1
解决办法
1651
查看次数

如何禁用Android设备的USB端口

我正在尝试搜索是否有一种方法可以主要禁用android设备的usb端口,软件级别。因此,用户仍然可以为Android设备充电,但无法再与PC通信。

我在link1中得到了一些线索。但是,看来没有一个简单的方法。

Android OS是基于Linux的操作系统。所以我想知道是否在Android OS中有一个配置文件,该文件允许root用户禁用USB端口,例如Linux OS中路径/ etc下的文件。

linux usb android operating-system

2
推荐指数
1
解决办法
7038
查看次数

如何在Swift中实现IOServiceMatchingCallBack

我想检测我的应用程序中插入/删除的特定USB.现在,我可以通过本教程使用USB设备接口获取deviceName .但是,如何在Swift 中执行(deviceAdded)IOServiceMatchingCallBack的回调函数.

我尝试如下,但我收到一个错误:无法将类型'(UnsafePointer,iterator:io_iterator_t) - >()'的值转换为预期的参数类型'IOServiceMatchingCallback!'

func detectUSBEvent() {
    var portIterator: io_iterator_t = 0
    var kr: kern_return_t = KERN_FAILURE
    let matchingDict = IOServiceMatching(kIOUSBDeviceClassName)

    let vendorIDString = kUSBVendorID as CFStringRef!
    let productIDString = kUSBProductID as CFStringRef!
    CFDictionarySetValue(matchingDict, unsafeAddressOf(vendorIDString), unsafeAddressOf(VendorID))
    CFDictionarySetValue(matchingDict, unsafeAddressOf(productIDString), unsafeAddressOf(ProductID))

    // To set up asynchronous notifications, create a notification port and add its run loop event source to the program’s run loop
    let gNotifyPort: IONotificationPortRef = IONotificationPortCreate(kIOMasterPortDefault)
    let runLoopSource: Unmanaged<CFRunLoopSource>! = IONotificationPortGetRunLoopSource(gNotifyPort)
    let gRunLoop: …
Run Code Online (Sandbox Code Playgroud)

macos usb iokit swift

2
推荐指数
1
解决办法
2082
查看次数

为什么USB使用UTF-16作为字符串(为什么不使用UTF-8)

UTF-16需要2个字节,UTF-8需要1个字节.
USB是8bit导向,UTF-8更自然.

UTF-8向后兼容ASCII,而UTF-16则不兼容.

UTF-16需要2个字节,因此,它可能有字节序问题.
(发生了字节序问题,后来它被USB-IF清除为小端.)

UTF-16和UTF-8在功能上

但为什么选择UTF-16?为什么不是UTF-8?


UTF-16和UTF-8的比较:https: //en.wikipedia.org/wiki/UTF-8#Compared_to_UTF-16

usb ascii utf-8 utf-16 character-encoding

2
推荐指数
1
解决办法
647
查看次数