freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電化學(xué)工作站畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-18 12:52 本頁面
 

【文章內(nèi)容簡介】 1mS。修改輸出端點(diǎn)的wMaxPacketSize的大小為0x00,0x40(這是16位的16進(jìn)制數(shù),高位在前)即端點(diǎn)的緩存大小為64bites。bInterval改為0x06,即USB設(shè)備讀設(shè)備USB緩存數(shù)據(jù)的時(shí)間間隔是6mS。然后是報(bào)告描述符的修改。報(bào)告描述符修改為:const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] = { 0x05, 0x01, //自定義桌面設(shè)備1 0x09, 0x00, //自定義 0xa1, 0x01, //COLLECTION (Application)項(xiàng)目開始 0x19, 0x00, //USAGE_MINIMUM(0)最小值 0x29, 0xFF, //USAGE_MAXIMUM(255)最大值 0x15, 0x00, //LOGICAL_MINIMUM(0)邏輯最小值 0x25, 0xFF, //LOGICAL_MAXIMUM(255)邏輯最大值 0x75, 0x08, //REPORT_SIZE(8)字段的位數(shù) 0x95, 0x40, //REPORT_COUNT(64)字段的長度 0x81, 0x02, //INPUT (Data,Var,Abs)輸入的數(shù)據(jù)類型 0x05, 0x01, //自定義設(shè)備2 0x19, 0x00, //USAGE_MINIMUM(0)最小值 0x29, 0xFF, //USAGE_MAXIMUM(255)最大值 0x15, 0x00, //LOGICAL_MINIMUM(0)邏輯最小值 0x25, 0xFF, //LOGICAL_MAXIMUM(255)邏輯最大值 0x95, 0x08, //REPORT_COUNT(8)字段的位數(shù) 0x75, 0x40, //REPORT_SIZE (64)字段的長度 0x91, 0x01, //OUTPUT (Data,Var,Abs)輸出的數(shù)據(jù)類型 0xc0 /* END_COLLECTION*/項(xiàng)目結(jié)束 }。 /* CustomHID_ReportDescriptor */以上是報(bào)告描述符的具體內(nèi)容和注釋,我們還可以按報(bào)告描述符的語法將之寫為類似結(jié)構(gòu)以實(shí)現(xiàn)相同的功能。 C++的USB實(shí)現(xiàn)方法本論文中我們使用VS2010專業(yè)版作為C++程序的編譯環(huán)境。關(guān)于VS2010的使用方法將在第六章作詳細(xì)的介紹。因?yàn)槲⑿陀?jì)算機(jī)大多自帶了USB接口,系統(tǒng)也自帶了USB相關(guān)的控制的驅(qū)動(dòng)、相應(yīng)的API函數(shù),所以控制USB設(shè)備只需要調(diào)用相關(guān)的API函數(shù)。,編寫程序時(shí)需要把相應(yīng)的頭文件、庫文件加入到程序中。API函數(shù):HidD_GetHidGuid,獲得HID類的信息[17] 。SetupDiGetClassDevs,獲得設(shè)備信息集,包含需要的類的設(shè)備信息[18]。SetupDiEnumDeviceInterfaces,獲得設(shè)備的信息。SetupDiGetDeviceInterfaceDetail,獲得需要的設(shè)備的路徑。HidD_GetAttributes,獲得廠商ID、產(chǎn)品ID。CreateFile,連接USB設(shè)備。ReadFile,讀USB數(shù)據(jù)。WriteFile,寫USB數(shù)據(jù)。CloseHandle,關(guān)閉資源。SetupDiDestroyDeviceInfoList,關(guān)閉SetupDiGetClassDevs 資源。相關(guān)API函數(shù)可以在MSDN中了解詳細(xì)的用法。,包含方式為extern C:extern C {include include }、。Lib文件及相關(guān)的頭文件、源文件的添加方法:,選“……屬性”。然后選“配置屬性”,選“C/C++”,選“常規(guī)”,在“附加包含目錄”中添加相應(yīng)的文件夾路徑,還要文件夾中放需要的頭文件、源文件、庫文件。選“鏈接器”,在“附加庫目錄”中添加相同的路徑,選“輸入”,在“附加依賴項(xiàng)”輸入“”。 本章小結(jié)本章主要介紹了我們實(shí)現(xiàn)USB接口傳輸數(shù)據(jù)功能的具體方法,主要是HID類的內(nèi)容,以及在主機(jī)軟件中控制USB傳輸數(shù)據(jù)的具體方法,主控芯片使用USB接口傳輸數(shù)據(jù)的實(shí)現(xiàn)方法。在HID類的介紹中,主要介紹了描述符的結(jié)構(gòu),這樣我們就可以了解描述符的結(jié)構(gòu)、作用。HID描述符是HID類特有的。第五章 下位機(jī)程序設(shè)計(jì) 引言主控芯片的程序是在KEIL 4環(huán)境中進(jìn)行編譯的,本章將主要介紹Keil μVision 。 KEIL開發(fā)環(huán)境介紹Keil公司是業(yè)界領(lǐng)先的微控制器(MCU)軟件開發(fā)工具的獨(dú)立供應(yīng)商。Keil公司制造和銷售種類廣泛的開發(fā)工具,包括ANSI C編譯器、宏匯編程序、調(diào)試器、連接器、庫管理器、固件和實(shí)時(shí)操作系統(tǒng)核心(realtime kernel)。Keil公司2005年由ARM公司收購。2009年發(fā)布Keil μVision 4,Keil μVision 4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上的表面對窗口位置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口,提供一個(gè)整潔,高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。Keil μVision 4支持C語言,與匯編相比,C語言易學(xué)易用,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,還能在C語言中嵌入?yún)R編,可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。Keil μVision 4界面如圖51所示。圖51 Keil μVision4環(huán)境界面新建工程的方法,就不介紹了,本論文主要介紹與程序相關(guān)的軟件的使用方法。文件編譯按鍵是用作編譯C語言程序文件、相關(guān)頭文件的編譯連接信息及錯(cuò)誤、警告信息在編譯連接信息中顯示。錯(cuò)誤是包括語法相關(guān)的錯(cuò)誤,有錯(cuò)誤是不能生成hex文件的,警告是說程序中有些代碼編寫不是非常恰當(dāng),不會影響程序編譯,在少數(shù)情況下會影響程序運(yùn)行一般警告可以忽略,而錯(cuò)誤是必須要修改的。在實(shí)際中,警告也是需要修改的??梢噪p擊文件打開相應(yīng)的文件。搜索信息中可以搜索輸入的字符所在的位置,輸入相應(yīng)的字符,按回車鍵則可以打開所搜索的字符的所在頁面。Target選項(xiàng)卡界面如圖52所示。圖52 Target選項(xiàng)卡圖Create HEX File 是生成hex文件選項(xiàng),hex文件是下載到主控芯片的文件,相同的程序,不同的主控芯片生成的hex文件是不同的。Browse Information 是否生成瀏覽信息。在程序頁面的函數(shù)單擊右鍵。選擇打開定義頁面則可以打開相關(guān)函數(shù)、定義、字符的定義的頁面。選擇打開聲明頁面,則可以打開函數(shù)、定義、字符的聲明的頁面。這樣,寫程序、讀程序就可以方便快捷的打開相應(yīng)的定義、聲明的頁面、不需要其它的復(fù)雜的方法。 USB庫介紹,由于USB協(xié)議較復(fù)雜,所以單獨(dú)用USB庫控制USB[19—24]。USB庫中文件:,USB總線數(shù)據(jù)處理的核心文件。,用于端點(diǎn)數(shù)據(jù)輸入輸出中斷處理。,用于緩沖區(qū)操作。,用于寄存器操作。,主要是用typedef為stm32支持的數(shù)據(jù)類型取一些新的名稱 ,主要是定義一些相關(guān)的數(shù)據(jù)類型。,用于USB設(shè)備的配置。,用于USB硬件配置。,用于USB連接、斷開操作。,直接處理USB中斷。,用于上層協(xié)議處理,比如HID協(xié)議,大容量存儲設(shè)備協(xié)議。,具體設(shè)備的相關(guān)描述符定義和處理。 下位機(jī)各模塊程序介紹本論文要介紹下位機(jī)的程序、思想。我們把硬件電路的功能模塊單獨(dú)設(shè)計(jì),同樣的,相關(guān)的程序的模塊是按照電路的模塊編寫的。這樣我們可以單獨(dú)調(diào)試模塊電路、程序,使得調(diào)試容易一些。 USB接口程序設(shè)計(jì)USB的設(shè)置是最先完成的,之后主機(jī)枚舉設(shè)備,USB及其它模塊的設(shè)置的流程圖如圖53所示。Set_System()。它的主要功能是初始化時(shí)鐘系統(tǒng)、使能相關(guān)的設(shè)備電源。interface_config(),主要功能是I/O接口的設(shè)置。interface_adconfig(),主要功能是片內(nèi)設(shè)備的設(shè)置。USB_Interrupts_Config(),主要功能是配置USB所用到的中斷,主要設(shè)配置了USB低優(yōu)先級中斷。Set_USBClock(),它的功能是配置和使能USB時(shí)鐘。USB_Init(),主要功能是USB請求實(shí)現(xiàn)、功能實(shí)現(xiàn)的函數(shù)的設(shè)置。 圖53 USB及其它模塊的設(shè)置的流程圖 模數(shù)轉(zhuǎn)換模塊程序設(shè)計(jì)主控芯片中的模數(shù)轉(zhuǎn)換器是12位的AD,轉(zhuǎn)換速率是軟件設(shè)置的。為了提高AD數(shù)據(jù)的讀寫速度使用了DMA,即內(nèi)存直接存取技術(shù),它允許不同速度的硬件裝置來溝通,而不需要依于主控制器的大量中斷負(fù)載。相關(guān)的函數(shù):DMA_DeInit(DMA1_Channel1)。//設(shè)置成CH1 DMA中包含了7個(gè)通道(CH1CH7) = ADC1_DR_Address。//給DMA起始地址=(u32)amp。ADC1ConvertedValue。//DMA連接在內(nèi)存中的變量地址 = DMA_DIR_PeripheralSRC。//設(shè)置DMA傳輸方向單向傳輸 = 1。//設(shè)置DMA在傳輸時(shí)緩沖區(qū)的長度 = DMA_PeripheralInc_Disable。//設(shè)置DMA的外設(shè)遞增模式 = DMA_MemoryInc_Disable。//設(shè)置DMA的內(nèi)存遞增模式=DMA_PeripheralDataSize_HalfWord。//DMA在訪問時(shí)每次操作的數(shù)據(jù)長度= DMA_MemoryDataSize_HalfWord。 = DMA_Mode_Circular。//DMA的傳輸模式,連續(xù)不斷的循環(huán)模式 = DMA_Priority_VeryHigh。//DMA的優(yōu)先級別:可以分為4級 = DMA_M2M_Disable。//DMA的2個(gè)memory中的變量互相訪問的DMA_Init(DMA1_Channel1, amp。DMA_InitStructure)。 //DMA整個(gè)模塊初始化DMA_Cmd(DMA1_Channel1, ENABLE)。//開啟DMA通道1 = ADC_Mode_Independent。//ADC1工作在獨(dú)立模式 = DISABLE。//使能掃描 = ENABLE。//ADC轉(zhuǎn)換工作在連續(xù)模式=ADC_ExternalTrigConv_None。//促發(fā)方式選擇,由軟件控制轉(zhuǎn)換 = ADC_DataAlign_Right。//轉(zhuǎn)換數(shù)據(jù)右對齊 = 1。//轉(zhuǎn)換通道數(shù)目為1ADC_Init(ADC1, amp。ADC_InitStructure)。 //初始化ADCRCC_ADCCLKConfig(RCC_PCLK2_Div6)。//配置ADC時(shí)鐘ADC_RegularChannelConfig(ADC1,ADC_Channel_4,1,ADC_SampleTime_1Cycles5)。//ADC1選擇信道0,順序等級1,ADC_DMACmd(ADC1, ENABLE)。//使能ADC1模塊DMAADC_Cmd(ADC1, ENABLE)。//打開ADC1ADC_ResetCalibration(ADC1)。//重置ADC1校準(zhǔn)寄存器while(ADC_GetResetCalibrationStatus(ADC1))。//等待ADC1校準(zhǔn)重置完成ADC_StartCalibration(ADC1)。//開始ADC1校準(zhǔn)while(ADC_GetCalibrationStatus(ADC1))。//等待ADC1校準(zhǔn)完成ADC_SoftwareStartConvCmd(ADC1, ENABLE)。//使能ADC1軟件開始轉(zhuǎn)換使用這樣的設(shè)置,AD轉(zhuǎn)換的數(shù)據(jù)以較快的速度傳輸?shù)蕉x的內(nèi)存。 數(shù)模轉(zhuǎn)換模塊程序設(shè)計(jì)數(shù)模轉(zhuǎn)換器使用DAC8830,相關(guān)的程序是依據(jù)DAC8830芯片數(shù)據(jù)手冊的時(shí)序圖編寫的,芯片的數(shù)據(jù)傳輸使用Fast SPI? Interface接口,時(shí)序圖如圖54所示。圖54 DAC8830芯片時(shí)序圖Fast SPI? Interface接口使用三個(gè)線:片選線(CS)、時(shí)鐘線(SCLK)、數(shù)據(jù)線(SDI)。相關(guān)的程序是按照時(shí)序圖寫的,在片選信號為低時(shí),在時(shí)鐘信號的上升沿寫數(shù)據(jù),數(shù)據(jù)時(shí)二進(jìn)制的,寫16位數(shù)據(jù),然后片選信號為高,完成數(shù)據(jù)的寫。 頻率計(jì)模塊程序設(shè)計(jì)頻率計(jì)模塊主要使用主控芯片的I/O中斷、定時(shí)器完成的。I/O中斷用作計(jì)數(shù),定時(shí)器用作定時(shí),這樣就可以計(jì)算頻率了。相關(guān)的程序:GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource6)。//將EXTI線6連接到PB6 = EXTI_Line6。//配置按鈕中斷線觸發(fā)方式 = EXTI_Mode_Interrupt。//配置按鈕中斷線觸發(fā)方式 = EXTI_Trigger_Falling。 //下降沿觸發(fā) = ENABLE。 //中斷線使能EXTI_Init(amp。EXTI_InitStructure)。 //初始化中斷EXTI_GenerateSWInterrupt(EXTI_Line6)。 //EXTI_Line6中斷允許 = (7200 1)。//這個(gè)就是自動(dòng)裝載的計(jì)數(shù)值,由于計(jì)數(shù)是從0開始的,計(jì)數(shù)10000次后為9999 = 0。//(7
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1