基于AVR USB接口的溫度測量系統下位機設計
DDRD=0x14;PORTD=0x00;
通常可在程序其他部分初始化完成后再調用函數usbInit (),最后再調用sei ()函數允許中斷。在main.c文件中的實現代碼如下:


(2)事件處理函數
用戶程序的主循環中需要定期調用USB事件處理函數usbPoll ()。USB事件處理函數usbPoll ()在沒有USB事件需要處理時將直接返回,否則將調用內部函數來進行相應的事件處理,最后再將數據傳遞到用戶接口函數中。通常的方法是:
用戶程序的主循環中需要定期調用USB事件處理函數usbPoll ()。USB事件處理函數usbPoll ()在沒有USB事件需要處理時將直接返回,否則將調用內部函數來進行相應的事件處理,最后再將數據傳遞到用戶接口函數中。通常的方法是:

一次USB通信的超時時間是50ms。所以,在編程時應注意其他事件不要占用太長的時間,以勉usbPoll ()函數不能及時執行。
(3)事件接口函數
(3)事件接口函數
在用戶程序中,需要編寫USB用戶事件接口函數,以完成USB通信。AVRUSB將用戶接口簡化為以下3個函數:

上述三個函數需要用戶進行編程處理,它們將完成USB通信的數據處理。
為了使代碼最優化,本系統只使用usbFunctionSetup函數,而屏蔽了usbFunctionWrite和usbFnctionRead函數,方法是在usbconfig.h中設置相應的位為0或1即可(參見表2)。


函數usbFunctionSetup負責傳遞USB請求,其參數存放在一個8字節的數組中(uchar data [8]),其含義是:


由于該系統功能只需要將測得的溫度值傳送到PC端,因此,該函數中只需做數據傳送即可,而無須作不同指令的辨識,設計時使用如下代碼來實現上述功能:

2.4編譯文件的配置
在WINAVR軟件環境下,還需要配置MakeFile,以用于編譯編程文件:


在WINAVR軟件環境下,還需要配置MakeFile,以用于編譯編程文件:



經過上述過程的配置和編程后,即可實現下位機的數據采樣和USB端口的數據傳輸。
3 結束語
基于AVRUSB技術的溫度測量和顯示系統由于使用了一體的軟USB技術,其硬件電路設計更加小巧穩定。經使用和測試證明:該系統具有性能穩定、價格低廉等特點。重要的是,本系統提供了一種低成本的USB設計方案,同時較詳細的提供了下位機的設計流程和部分代碼,從而為中低成本的USB設備開發提供了一個較好的思路。
主站蜘蛛池模板:
乐亭县|
兰考县|
远安县|
富顺县|
大埔区|
屯留县|
桦川县|
东港市|
疏勒县|
漳浦县|
孟连|
巴南区|
旌德县|
司法|
巴东县|
石嘴山市|
桑日县|
安丘市|
沧源|
望城县|
米林县|
满城县|
汶上县|
丰都县|
佛教|
无锡市|
水城县|
合水县|
贺兰县|
浙江省|
合川市|
邛崃市|
沂南县|
始兴县|
砚山县|
中卫市|
开平市|
桃江县|
仪征市|
碌曲县|
湖南省|
評論