Ⅰ 如何使用C语言编程读取从电脑usb接口的信息。
可以打开USB接口上的设备,或者打开USB控制器,那涉及到windows的驱动访问。
一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。
比如:
HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以异步方式打开
BYTE bBuffer[100];
OVERLAPPED o = { 0 };
o.Offset = 345;
BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); // bReadDone 指定I/O请求是不是以同步方式打开
DWORD dwError = GetLastError();
if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //异步方式打开
// The I/O is being performed asynchronously; wait for it to complete
WaitForSingleObject(hFile, INFINITE);
bReadDone = TRUE;
}
if (bReadDone) {
// o.Internal contains the I/O error
// o.InternalHigh contains the number of bytes transferred
// bBuffer contains the read data
} else {
// An error occurred; see dwError
}
Ⅱ 谁能在turbo C下用socket函数编一个读取usb接口数据,并且再写入另一个数据的程序啊,写了。急~
没试过,不过现在存储设备接上USB接口一般能够自动识别
跟读硬盘数据那样读取数据可以了吧
就是设置文件路径打开文件,读写文件,最后关闭
如果是串口就不一样了
串口会自动发送数据
看看参数说明,比如说波特率,停止位,奇偶检验什么的
要用到MSCOMM32.OCX
上网搜一下应该有很多资料
Ⅲ C#如何获取USB串口设备的数据
System.IO.Ports中有一个SerialPort 类你可以研究一下
给你个代码看看吧
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Data;
8 using System.Windows.Documents;
9 using System.Windows.Input;
10 using System.Windows.Media;
11 using System.Windows.Media.Imaging;
12 using System.Windows.Navigation;
13 using System.Windows.Shapes;
14 using System.IO.Ports;
15
16 namespace CsharpComm
17 {
18 /// <summary>
19 /// Window1.xaml 的交互逻辑
20 /// </summary>
21 public partial class Window1 : Window
22 {
23 public Window1()
24 {
25 InitializeComponent();
26 }
27
28 //定义 SerialPort对象
29 SerialPort port1;
30
31 //初始化SerialPort对象方法.PortName为COM口名称,例如"COM1","COM2"等,注意是string类型
32 public void InitCOM(string PortName)
33 {
34 port1 = new SerialPort(PortName);
35 port1.BaudRate = 9600;//波特率
36 port1.Parity = Parity.None;//无奇偶校验位
37 port1.StopBits = StopBits.Two;//两个停止位
38 port1.Handshake = Handshake.RequestToSend;//控制协议
39 port1.ReceivedBytesThreshold = 4;//设置 DataReceived 事件发生前内部输入缓冲区中的字节数
40 port1.DataReceived += new (port1_DataReceived);//DataReceived事件委托
41 }
42
43 //DataReceived事件委托方法
44 private void port1_DataReceived(object sender, SerialDataReceivedEventArgs e)
45 {
46 try
47 {
48 StringBuilder currentline = new StringBuilder();
49 //循环接收数据
50 while (port1.BytesToRead > 0)
51 {
52 char ch = (char)port1.ReadByte();
53 currentline.Append(ch);
54 }
55 //在这里对接收到的数据进行处理
56 //
57 currentline = new StringBuilder();
58 }
59 catch(Exception ex)
60 {
61 Console.WriteLine(ex.Message.ToString());
62 }
63
64 }
65
66 //打开串口的方法
67 public void OpenPort()
68 {
69 try
70 {
71 port1.Open();
72 }
73 catch { }
74 if (port1.IsOpen)
75 {
76 Console.WriteLine("the port is opened!");
77 }
78 else
79 {
80 Console.WriteLine("failure to open the port!");
81 }
82 }
83
84 //关闭串口的方法
85 public void ClosePort()
86 {
87 port1.Close();
88 if (!port1.IsOpen)
89 {
90 Console.WriteLine("the port is already closed!");
91 }
92 }
93
94 //向串口发送数据
95 public void SendCommand(string CommandString)
96 {
97 byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString);
98 port1.Write(WriteBuffer, 0, WriteBuffer.Length);
99 }
100
101 //调用实例
102 private void btnOpen_Click(object sender, RoutedEventArgs e)
103 {
104 //我现在用的COM1端口,按需要可改成COM2,COM3
105 InitCOM("COM1");
106 OpenPort();
107 }
108 }
109 }
Ⅳ C语言如何让调用笔记本的USB接口啊,求实例
1.打开usb接口上的设备,或者打开usb控制器,涉及到windows的驱动访问。一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。
2.例程:
handlehFile=CreateFile(...,FILE_FLAG_overlapped,...);//指定以异步方式打开
bytebBuffer[100];
overlappedo={0};
o.Offset=345;
boolbReadDone=ReadFile(hFile,bBuffer,100,null,&o);//bReadDone指定I/O请求是不是以同步方式打开
dworddwError=GetLastError();
if(!bReadDone&&(dwError==ERROR_IO_PENDING)){//异步方式打开
//TheI/;waitforittocomplete
WaitForSingleObject(hFile,infinite);
bReadDone=TRUE;
}
if(bReadDone){
//o.InternalcontainstheI/Oerror
//o.
//bBuffercontainsthereaddata
}else{
//Anerroroccurred;seedwError
}
Ⅳ C语言如何编程,可以接收用USB连接的设备上扫描到的信息(USB设备驱动已安装)
这个一般涉及到文件读取的知识。打开课本最后一章,文件,里面有详细的介绍,不过仅限于读取某个文件,就像C:\Windows\ABLKSR这样子读取,具体实现是
#include "stdio.h"
void main()
{
FILE *fp1;
fp=fopen(“C:\Windows\ABLKSR”,r+);
free fp1;
//如果想要输出的话用printf,想进一步了解的话可以继续追问
}
最具体实现的话就要用MFC 或WINAPI了,可以实现文件查看,打开关闭修改,等等,不过涉及相对较深,单纯用C的简单语句的实现可能要编上1年
Ⅵ usb-c怎么用
2013年12月,USB 3.0推广团队已经公布了下一代 USB Type-C 连接器的渲染图,随后在2014年8月开始已经准备好进行大规模量产。新版接口的亮点在于更加纤薄的设计、更快的传输速度(最高10Gbps)以及更强悍的电力传输(最高100W)。Type-C双面可插接口最大的特点是支持USB接口双面插入,正式解决了“USB永远插不准”的世界性难题,正反面随便插。同时与它配套使用的USB数据线也必须更细和更轻便。
中文名:USB-C
外文名:USB Type-C
分享
应用
诺基亚N1在正式公布的时候,官方曾经表示该产品将支持最新的 Type-C USB接口,不过当时并没有引起外界足够的重视。不过看来诺基亚对N1的这个特性寄予了厚望,因此今天再一次在官方Twitter账户上又一次强调了这个特性。
诺基亚在Twitter上写道:“诺基亚N1使用双面可插的Type-C接口,这将极大地方便用户使用”。
多数人可能并不知道Type-C双面可插接口是什么样子,但业内人士相信,这个功能一旦在移动设备上普及开来,一定会受到大家的欢迎。
2015年3月9日,在美国举行的苹果新品发布会上,全新MacBook重新定义了连接性标准,将电源接口、USB接口、DP接口、HDMI接口与VGA接口统一用USB-C来承载,随着Type-C连接器的到来,这一切都将发生改变。USB-C最大的特点是正反都可以插入!这也是USB-C技术第一次在消费级笔记本电脑的应用。
技术特点
2013年12月,USB 3.0推广团队已经公布了下一代 USB Type-C 连接器
接口设计图
图册 4张
的渲染图,随后在2014年8月开始已经准备好进行大规模量产。新版接口的亮点在于更加纤薄的设计、更快的传输速度(最高10Gbps)以及更强悍的电力传输(最高100W)。Type-C双面可插接口最大的特点是支持USB接口双面插入,正式解决了“USB永远插不准”的世界性难题,正反面随便插。同时与它配套使用的USB数据线也必须更细和更轻便。
总结说来USB Type-C具有以下特点:
1.最大数据传输速度达到10Gbit/秒,也是USB 3.1的标准;
2.Type-C接口插座端的尺寸约为8.3mm×2.5mm纤薄设计;
3.支持从正反两面均可插入的“正反插”功能,可承受1万次反复插拔;
4.配备Type-C连接器的标准规格连接线可通过3A电流,同时还支持超出现有USB供电能力的“USB PD”,可以提供最大100W 的电力。
外观特点
1.超薄
更薄的机身需要更薄的端口,这也是USB-C横空出世的原因之一。USB-C端口长0.83厘米、宽0.26厘米。老式USB端口长1.4厘米、宽0.65厘米已经显得过时。这也意味着USB-C数据线的末端将是标准USB-A型数据线插头尺寸的三分之一。
2.无正反
像苹果的Lightning接口一样,USB-C端口正面和反面是相同的。也就是说无论你怎么插入这一端口都是正确的。用户不必担心传统USB端口所带来的正反问题。
主要功能
1.快速
理论上,USB-C端口的最高传输速率为每秒10Gb。但是苹果表示新款MacBook的USB-C端口最高传输速率为5Gbps。最大输出电压为20伏,可以加快充电时间。 而USB-A型,到目前为止极限传输速率为5Gbps,输出电压为5伏。
2.多面手
新MacBook的USB-C型端口能够传输数据、进行充电也可以作为视频输出端口链接外部显示设备。唯一的疑问是苹果如何满足想要同时做这三件事的用户。
3.双向
不像老款USB端口,功率只能单向传输,USB-C型端口的功率传输是双向的,这意味着它可以拥有两种发送功率方式。所以,用户不仅可以用笔记本为移动设备充电,也可以利用其它设备或移动电源为笔记本充电。
4.后向兼容
USB-C可以与老的USB标准兼容,但用户需要额外购买适配器才能完成兼容。苹果公司表示不仅苹果官方会出售适配器,第三方公司也可以授权生产。
规格参数
USB-C 接口标准的主要推动者包括苹果、Intel、谷歌、微软、立讯精密等国际大公司。
媒体评价
usb type c数据线连接佳能相机
USB-C 接口由于是新型接口,在未来一段时间内,设备兼容性尚存在一定问题,在该接口普及之前,用户还需要使用各种转换设备进行接口转换才能够顺利使用。例如USB-C to USB Adapter 转换器,USB-C Digital AV Multiport Adapter(HDMI转换器), USB-C VGA Multiport Adapter ( VGA转换器 ),电源方面,还需要USB-C 电源适配器。
Ⅶ C编译系统自带的函数库与操作系统之间的关系以及如何通过C来控制一个usb接口输出的值,并从usb获得数据
图示说明: “A-------通过什么来控制--------->B ” 意指 "A通过什么来控制B"。
你的应用程序---函数接口--->C函数库内的函数----系统调用接口-------->操作系统内部提供的服务
|___________________系统调用接口___________________________^|^
C应用程序一般不直接控制 在USB端口输出什么值,它一般会通过操作某个设备文件来和一个usb外设进行通信。读写设备文件的函数接口就是 open/read/write/close 等等了。粗略的概括一下在 linux中的 usb 系统中的操作框架:
应用程序-----通过c库提供的函数或者系统调用来操作------->某一设备文件(比方 /dev/usb/ttyUSB0之类的) ----透过USB设备驱动程序来使用------->Linux 内核中的 usb core-----通过USB主控制器驱动控制----------> USB外设
Ⅷ 求一个简单的读取USB接口信息的C程序,读取到的数据存在一个char型数组中。
首先要知道 端口的地址!
然后就用嵌入汇编!
asm{
}
剩下自己查!很明了了!
Ⅸ 如何用C语言读取U盘容量
charstrdir[10];
for(charcc='A';cc<='Z';cc++)
{
sprintf(strdir,"%c",cc);
if(GetDriveType((LPCTSTR)strdir)==DRIVE_REMOVABLE)//移动盘
{
returnstrdir;//获取到U盘盘符
}
}
//在有外设安装的时候,一般都会向所有窗口广播WM_DEVICECHANGE消息,
处理这个消息,安装时候在DBT_DEVICEARRIVAL中
处理DEV_BROADCAST_HDR,DEV_BROADCAST_VOLUME就可以得到U盘的盘符。
Ⅹ 怎样编写一个在USB接口读写数据的程序
使用一个GUIDguidHID_1查找并打开一个USB设备
extern "C" int PASCAL SearchUSBDevice()
{
HANDLE hUsb;
int nCount, i, j;//标记同一设备个数
HDEVINFO hDevInfoSet;
BOOL bResult;
PSP_DEVICE_INTERFACE_DETAIL_DATA pDetail =NULL;
memset(m_sysversion, 0, 20);
GetSysVersion(m_sysversion);
// 检索相关GUID的USB设备总设备个数
if (!GetUSBList())
{
return 0;
}
// 取得一个该GUID相关的设备信息集句柄
hDevInfoSet = ::SetupDiGetClassDevs((LPGUID)&guidHID_1,//GUID_CLASS_USB_DEVICE, // class GUID
NULL, // 无关键字
NULL, // 不指定父窗口句柄
DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); // 目前存在的设备
// 失败...
if (hDevInfoSet == INVALID_HANDLE_VALUE)
{
return NULL;
}
// 申请设备接口数据空间
nCount = 0;
bResult = TRUE;
for (i=0; i< 34; i++)
{
bDeviceOpen[i] = FALSE;
memset(m_DeviceDesc[i], 0, 256);
}