『壹』 usb編程,上位機和下位機的通信
PIC 的單片機沒用過,首先得看 PIC32MX575 是否支持 USB 介面。
如果支持,那就按照晶元說明書編寫 C 程序就是了;
如果不支持,那就得用它去控制專用的支持 USB 介面的晶元來實現 USB 通信了。直接在單片機上實現 USB 通信不可行。
『貳』 用vc++實現usb介面通信編程的一般步驟
我來說下我做過的USB通信,我沒有做過DSP跟上位機的通信,我只做過ARM類的STM32跟上位機的數據傳遞,雖然做過但是也不是很 懂,只是略知一二,我來說說我怎麼做的吧,我是這么實現的:
USB是個很復雜的協議,你如果完全搞懂,我估計沒有幾個月專心鑽研是不行的,但是如果只是能實現你的這個功能,我估計不是很復雜。
首先來說說USB通信:
USB通信傳輸方式分為四種:控制,中斷,批量,同步傳輸四種,這個你可以看看網上資料,然後我用STM32通信,因為數據量不是很大,我用的是中斷傳輸方式,但是DSP數據量應該會比較大,不知道中斷傳輸行不行,但是一般問題不大。
傳輸方式說完了,再說說USB設備類型,你每次插usb設備到電腦上的時候就會有提示,這是一個什麼設備,USB設備類型就是說的這個意思,是滑鼠還是鍵盤還是別的什麼的,如果你選用標準的類,你就不用自己寫上位機(PC)的驅動程序,但是如果不用標準的類,就是用自定義的類就要自己寫上層的設備驅動程序,就是所謂的DDK,WDM,WDF什麼的,你沒寫過這方面的還真有點棘手,但是也不一定要寫驅動程序,你可以試試有個類叫HID類,這個類在USB通信的時候用的還挺多的,不過這個類也有缺點,這個地方還要說一點,USB還分低速,全速,高速三種,不太了解DSP,不知道他支持什麼模式,但是USB2.0的全速應該至少可以支持的。
USB2.0全速模式HID用中斷方式每秒最多可以傳輸64KB的數據,不知道能不能達到你的要求,但是我估計一般問題不大了,如果你這歀DSP能支持高速模式,每秒用這種方式可以傳輸高達22MB的數據,這個速度一般問題不大了。
你可以照著我說的思路,去網上搜搜人家寫好的程序,肯定有人做過DSP的USB通信,然後你按照自己的要求改一改,主要應該是USB的設備描述符部分要自己修改,然後可能還要根據自己的電路改改配置什麼的,上位機軟體網上有源代碼的多的是,然後自己摸索摸索,我估計你要是編程水平還可以的話,只是摸索USB,一兩個星期完全沒有問題,祝你好運!
『叄』 求助,關於linux下usb通信的c語言程序
不知道你要提取到哪裡,自作主張把提取出內容放入到txt文檔中。輸入文件:in.txt輸出文件:out.txt代碼如下:已在GCC測試。#includeintmain(intargc,char*argv[]){charbuffer[32];char*pos;FILE*fp_in=fopen("in.txt","r");FILE*fp_out=fopen("out.txt","w");if(!fp_in)return;while(!feof(fp_in)){fgets(buffer,32,fp_in);pos=strchr(strchr(buffer,'.')+1,'.');/*就這一句比較難理解,意思是查找第二個'.'出現位置*/*pos='\0';/*找到後,賦值為'\0',為fputs輸出做准備*/fputs(buffer,fp_out);putc('\n',fp_out);}fclose(fp_in);fclose(fp_out);}
『肆』 C#如何實現對單片機的USB通信
1、自己寫一個c++的USB代理類,直接和底層驅動通信
2、C#通過這個來調用
單片機只是一塊晶元,需要基本電路及相應外圍設備。
模擬可以用proteus,編程可以用Keil,調試用串口助手。
單片機可以通過RS232轉串口和電腦通信(還需要RS232驅動)。
或者
1、買一個USB到RS232串口轉換介面
2、單片機加一個TTL到RS232電平轉換晶元。
如果是帶USB介面的單片機,則直接用一個簡單的介面電路就可以接到PC了.....
若是不帶USB介面的單片機,則還需要用到一個橋接晶元,通常是利用單片機的USART介面,加上橋接晶元,例如PL2303之類的,就可以接到PC了.
『伍』 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年
『陸』 各位大俠,在vc++下如何編程式控制制USB口,即通過USB口收發數據
publicstaticStringreverse1(Stringstr)
{
returnnewStringBuffer(str).reverse().toString();
}
2.最常用的方法:
publicstaticStringreverse3(Strings)
{
char[]array=s.toCharArray();
Stringreverse="";//注意這是空串,不是null
for(inti=array.length-1;i>=0;i--)
reverse+=array[i];
returnreverse;
}
3.常用方法的變形:
publicstaticStringreverse2(Strings)
{
intlength=s.length();
Stringreverse="";//注意這是空串,不是null
for(inti=0;i<length;i++)
reverse=s.charAt(i)+reverse;//在字元串前面連接,而非常見的後面
returnreverse;
}
4.C語言中常用的方法:
publicstaticStringreverse5(Stringorig)
{
char[]s=orig.toCharArray();
intn=s.length-1;
inthalfLength=n/2;
for(inti=0;i<=halfLength;i++){
chartemp=s[i];
s[i]=s[n-i];
s[n-i]=temp;
}
returnnewString(s);//知道char數組和String相互轉化
}