1

C# WPF上位机开发(usb设备访问)

 8 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/135062483
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        目前很多嵌入式设备都支持usb访问,特别是很多mcu都支持高速usb访问。和232、485下个比较,usb的访问速度和它们基本不在一个数量级上面。因此,使用usb进行上位机和嵌入式模块进行通信,一般会有比较好的交互体验。那么对于c# wpf来说,应该如何usb激进型输入访问呢?

1、usb设备插入到pc电脑

        一般嵌入式模块的usb接口插入之后,通过windows的设备管理器,可以看到一个陌生的usb设备被搜索到,但是当前这个设备还没有对应的驱动与之相匹配,所以大概是红色的状态。

2、用zadig安装驱动

        usb设备既然还没有驱动,那么这个时候一般用zadig软件给它匹配一个通用驱动。通常也就是libusbK这样的驱动。也正是因为这样的驱动,c# wpf才可以用LibsUsbDotNet接口对这个嵌入式设备进行usb访问。

514228afb8f4412a91b3b572b185c245.png

3、安装LibUsbDotNet开源库

        目前可以用NuGet安装LibUsbDotNet开源库,这个其他库安装的方法是一样的。

45f3216ceb964c0e929c62577f25ca39.png

4、引入开源库命名空间

        安装好开源库之后,通过using关键字就可以将相关关键字引入进来了。

5、初始化设备

        usb设备的初始化其实比较简单,主要就是vendorId和productId,这两个数据不同的厂家一般是不一样的。

6、读取数据、写入数据

        发现了usb数据之后,剩下来的事情就好办了。一般就有两种操作,一种是读操作,一种是写操作。读操作的部分基本也是套路,

        写数据的操作是这样的,

7、关闭usb设备

        如果usb停止操作了,一般直接调用对应的接口直接关闭usb就可以了。

8、usb协议

        一般来说,usb通信只是方式和手段,通信的内容是需要构建一套协议的。有什么cmd、什么参数、长度多少、crc校验是什么,一般都要说清楚。这个协议和232、485、网络的协议本质上是一回事,只不过usb物理上更快一点而已。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK