初涉USB,初学者USB入门总结(5)USB上位机读写开发

2024-03-15 08:18

本文主要是介绍初涉USB,初学者USB入门总结(5)USB上位机读写开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一部分说了固件和驱动的编程,这里再谈一下上位机的程序,因为我开发的范围也就是传传数据,所以太深入的没有去做,不过一般的工程调试应该足够了。

    固件的程序和驱动编写好了后,把设备插入就可以正确识别到,接下来的工作就是如何用上位机读写设备了。其实读写操作跟读写串口一致的,就是用file进行操作。关键是打开设备,下面是我用到的程序,这里都贴出来吧,我都是用这个的,供大家参考,呵呵,如果刚开始弄的话,估计得弄上个一个星期才行,用这个程序修改一下,两分钟搞定。

    其中GUID ClassGuid 是你在驱动中生成的一个号,它必须跟你的驱动对应起来,这个号的位置在驱动程序的XXXDeviceInterface.h中的#define XXXDevice_CLASS_GUID \....XXX表示你起的工程名字)。把这个号替换之后用FpOpenDevice打开设备,得到一个读句柄,一个写句柄,然后在自己的程序中用readfilewritefile读写设备就可以了,注意,不管是读还是写,都是主机发出的,设备不能主动发发数据。比如上位机中运行readfile,就会发送一个IN指令,设备接到IN指令后,会把缓冲区的内容发出。

 对于初学总结就先介绍到这里,谢谢大家的支持

希望大家多多分享自己开发的经验,在开发学习中遇到的问题和困惑可能其他人都会有碰到,与其自己把这些心得憋在肚子里让大家都走一遍弯路不如把自己的经验与别人分享,这样不但自己有个总结再个使别人收益,何乐而不为,独乐乐不如众乐乐,于是而也。

其实开发也是一件具有艺术与哲学的事情,说其艺术,是其任凭你想象,散发的无边无际。说其有哲理,是万事皆有因,顺其自然(自然即客观规律),必能找其根本,体味其中奥妙,其乐无穷~

这篇关于初涉USB,初学者USB入门总结(5)USB上位机读写开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811334

相关文章

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自