導航:首頁 > 器材知識 > c怎麼從usb設備讀取數據包

c怎麼從usb設備讀取數據包

發布時間:2022-07-11 03:22:45

Ⅰ 如何使用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);
}

閱讀全文

與c怎麼從usb設備讀取數據包相關的資料

熱點內容
steam令牌換設備了怎麼辦 瀏覽:246
新生測聽力儀器怎麼看結果 瀏覽:224
化學試驗排水集氣法的實驗裝置 瀏覽:156
家用水泵軸承位置漏水怎麼回事 瀏覽:131
羊水鏡設備多少錢一台 瀏覽:125
機械制圖里型鋼如何表示 瀏覽:19
測定空氣中氧氣含量實驗裝置如圖所示 瀏覽:718
超聲波換能器等級怎麼分 瀏覽:800
3萬軸承是什麼意思 瀏覽:110
鑫旺五金製品廠 瀏覽:861
蘇州四通閥製冷配件一般加多少 瀏覽:153
江北全套健身器材哪裡有 瀏覽:106
水表閥門不開怎麼辦 瀏覽:109
花冠儀表盤怎麼顯示時速 瀏覽:106
洗砂機多少錢一台18沃力機械 瀏覽:489
超聲波碎石用什麼材料 瀏覽:607
組裝實驗室製取二氧化碳的簡易裝置的方法 瀏覽:165
怎麼知道天然氣充不了閥門關閉 瀏覽:902
公司賣舊設備掛什麼科目 瀏覽:544
尚葉五金機電 瀏覽:59