C# 操作USB

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace WindowsApplication1
{

    class Class1
    {

        [DllImport("kernel32.dll")]

        private static extern IntPtr CreateFile(

            String lpFileName,

            UInt32 dwDesiredAccess,

            UInt32 dwShareMode,

            IntPtr lpSecurityAttributes,

            UInt32 dwCreationDisposition,

            UInt32 dwFlagsAndAttributes,

            IntPtr hTemplateFile

            );

        [DllImport("Kernel32.dll")]

        private static extern bool ReadFile(

            IntPtr hFile,

            byte[] lpBuffer,

            uint nNumberOfBytesToRead,

            ref uint lpNumberOfBytesRead,

            IntPtr lpOverlapped

            );

        [DllImport("Kernel32.dll")]

        private static extern bool WriteFile(

            IntPtr hFile,

            byte[] lpBuffer,

            uint nNumberOfBytesToWrite,

            ref uint lpNumberOfBytesWritten,

            IntPtr lpOverlapped

            );

        [DllImport("kernel32.dll")]

        private static extern bool CloseHandle(

            IntPtr hObject

            );

        //--------------------------------------------------------------------------------

        IntPtr hFile;

        private const UInt32 GENERIC_READ = 0x80000000;

        private const UInt32 GENERIC_WRITE = 0x40000000;

        private const UInt32 OPEN_EXISTING = 3;

        private const Int32 INVALID_HANDLE_VALUE = -1;

        private const int USB_WRITENUM = 8;

        private const int USB_READNUM = 8;

        private byte[] m_rd_data = new byte[USB_READNUM];

        public byte[] rd_data
        {

            get { return m_rd_data; }

            set { m_rd_data = value; }

        }

        private byte[] m_wr_data = new byte[USB_WRITENUM];

        public byte[] wr_data
        {

            get { return m_wr_data; }

            set { m_wr_data = value; }

        }

        public bool OnInitUSB()
        {

            hFile = IntPtr.Zero;

            string deviceName = string.Empty;

            deviceName = "USB";



            hFile = CreateFile(

                deviceName,

                GENERIC_READ | GENERIC_WRITE,

                0,

                IntPtr.Zero,

                OPEN_EXISTING,

                0,

                IntPtr.Zero

                );

            return hFile.ToInt32() == INVALID_HANDLE_VALUE ? false : true;

        }

        public bool USBDataRead()
        {

            uint read = 0;

            return ReadFile(hFile, m_rd_data, (uint)USB_READNUM, ref read, IntPtr.Zero);

        }

        public bool USBDataWrite()
        {

            uint written = 0;

            return WriteFile(hFile, m_wr_data, (uint)USB_WRITENUM, ref written, IntPtr.Zero);

        }

        public void CloseConnection()
        {

            if (hFile.ToInt32() != INVALID_HANDLE_VALUE)
            {

                CloseHandle(hFile);

                hFile = IntPtr.Zero;

            }

        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C 是一种编程语言,广泛用于开发各种应用和软件。它是由美国贝尔实验室的丹尼斯·里奇在20世纪70年代初开发的。 C 语言被设计为一种通用的高级编程语言,它的语法简洁、可读性强,被广泛应用在系统级编程、嵌入式系统、操作系统和各种工具开发上。 C 的特点是具有高效的执行和灵活的表达能力。它的代码可以直接转换为机器码,因此执行速度比较快。此外,C 语言支持指针操作,对内存的直接控制能力强,可以实现很多底层的操作,例如内存管理、位操作等。 C 语言的标准库提供了丰富的函数和数据结构,可以方便地进行文件读写、数学计算、字符串处理等操作。此外,C 语言还支持自定义函数和数据类型,可以根据需要进行模块化和封装,提高代码的可读性和可维护性。 C 语言以其简洁、高效、灵活的特点,成为了许多编程语言的基础。许多流行的高级编程语言,如C++、Java和Python,都在一定程度上借鉴了 C 语言的语法和设计思想。 总的来说,C 语言是一种强大的编程语言,具有广泛的应用领域和丰富的功能。掌握好 C 语言,可以为开发各种应用和软件提供坚实的基础。 ### 回答2: 我可以用文回答这个问题。C是编程语言的一种,它由美国贝尔实验室的Dennis Ritchie在20世纪70年代开发。C语言具有简洁、高效、灵活的特点,因此在计算机科学领域被广泛应用。 C语言是一种结构化的高级编程语言,它提供了许多基本的数据类型、运算符和控制结构,可以用于开发各种应用程序。C语言的语法简洁明了,有助于编程人员快速上手。它也支持面向过程和面向对象的编程方法,使得程序的组织和模块化更加容易。 C语言的编译速度很快,生成的机器码执行效率高,因此被广泛应用于操作系统和嵌入式系统开发。许多著名的操作系统,如UNIX、Linux和Windows,都是用C语言编写的。此外,许多底层的驱动程序和硬件接口也是使用C语言编写的。 由于C语言具有广泛的应用领域和强大的功能,它成为大多数计算机科学专业学生必修的编程语言之一。学习C语言不仅可以帮助开发者理解计算机底层的工作原理,还可以培养逻辑思维和问题解决能力。 总的来说,C语言是一种重要的编程语言,它的简洁、高效和灵活的特性,使得它成为计算机科学领域广泛使用的工具之一。无论是在操作系统开发、嵌入式系统编程还是学术研究等领域,C语言都扮演着重要的角色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值