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

正文內(nèi)容

基于arm_cortex-m處理器圖像無線傳輸?shù)膽?yīng)用_畢業(yè)設(shè)計(jì)(論文)(編輯修改稿)

2024-10-02 15:35 本頁面
 

【文章內(nèi)容簡介】 CD的RD腳;FSMC NWE: 寫使能,連接LCD的RW腳;FSMC Ax: 用在LCD顯示RAM和寄存器之間進(jìn)行選擇的地址線,即該線用于選擇LCD的RS腳,該線可用地址線的任意一根線,范圍:FSMC_A[25:0]。注:RS = 0時(shí),表示讀寫寄存器;RS = 1,表示讀寫數(shù)據(jù)RAM。 片存儲(chǔ)部分圖28 SD卡存儲(chǔ)部分存儲(chǔ)部分使用SD卡,SD存儲(chǔ)介質(zhì)是一種非易失性外部存儲(chǔ)器,可滿足許多應(yīng)用場(chǎng)合的要求。SD格式是“多媒體卡”(MMC)格式的繼承產(chǎn)品。,具有適度的電流要求。SD卡的容量從幾百兆節(jié)到最高的幾十GB不等。容量范圍如此之寬,可為眾多應(yīng)用提供充足的外部存儲(chǔ)空間。SD 總線有6 根通信線和三根電源供應(yīng)線:CMD: 命令線是雙向信號(hào)線。主機(jī)和卡通過push pull 模式工作。DAT03: 數(shù)據(jù)線是雙向信號(hào)線。主機(jī)和卡通過push pull 模式工作。CLK: 時(shí)鐘是從主機(jī)到卡的信號(hào)。CLK 通過push pull 模式操作。VDD: 是所有卡的電源供應(yīng)線。VSS[1:2]:2根地線。SD 卡可以通過單數(shù)據(jù)線(DAT0)或四根數(shù)據(jù)線(DAT0DAT3)進(jìn)行數(shù)據(jù)傳輸。單根數(shù)據(jù)線傳輸最大傳輸速率為25 Mbit/s,四根數(shù)據(jù)線最大傳輸速率為100 Mbit/s。本次課題設(shè)計(jì)的系統(tǒng)使用四根數(shù)據(jù)線。第3章 系統(tǒng)軟件設(shè)計(jì)本章介紹了圖像無線傳輸系統(tǒng)各硬件的驅(qū)動(dòng)程序的設(shè)計(jì)。 無線模塊驅(qū)動(dòng)程序設(shè)計(jì) 發(fā)送端和接收端的無線模塊驅(qū)動(dòng)代碼均由以上兩個(gè)文件組成。對(duì)nrf24l01的操作方法見圖31。對(duì)nrf24l01傳送SPI數(shù)據(jù)設(shè)置nrf24l01為發(fā)送模式,指定發(fā)送速率和發(fā)送個(gè)數(shù)初始化處理器SPI接口發(fā)送指定數(shù)據(jù)發(fā)送函數(shù)是否返回0NOYES對(duì)nrf24l01傳送SPI數(shù)據(jù)設(shè)置nrf24l01為接收模式,指定接收速率和接收個(gè)數(shù)初始化處理器SPI接口接收數(shù)據(jù)接收函數(shù)是否返回0NOYES圖311 nrf24l01發(fā)送數(shù)據(jù)操作流程圖圖312 nrf24l01接收數(shù)據(jù)操作流程圖圖31 nrf24l01工作在發(fā)送和接收的操作流程圖對(duì)nrf24l01的操作很簡單,不論是發(fā)送還是接收基本步驟都是先初始化處理器SPI接口,然后傳送參數(shù)對(duì)nrf24l01進(jìn)行設(shè)置,接下來便可以使用nrf24l01進(jìn)行發(fā)送數(shù)據(jù)(或接收數(shù)據(jù))。為了確保不發(fā)漏(或接漏)數(shù)據(jù),每次發(fā)送(或接收)都通過while()循環(huán)檢查是否發(fā)送(或接收)成功,發(fā)送(或接收)函數(shù)返回0表示無誤,返回1表示還沒成功或還沒完成發(fā)送(或接收)。(完整形式參見附錄1 )NRF24L01_Init()NRF24L01_Detach()NRF24L01_TxMode()NRF24L01_RxMode()NRF24L01_TxPacket()NRF24L01_RxPacket() NRF24L01_Init()函數(shù)初始化ARM處理器的SPI接口,完成SPI初始化后檢測(cè)接口上是否連接好nrf24l01無線模塊。 NRF24L01_Detach()函數(shù)用于解除nrf24l01無線模塊對(duì)ARM處理器的SPI接口的占用,也有減低系統(tǒng)功耗功能。NRF24L01_TxMode()設(shè)置nrf24l01無線模塊為發(fā)送模式,包括設(shè)置通訊速率,通訊字節(jié)個(gè)數(shù),本地地址和接收地址,頻道的自動(dòng)答應(yīng)允許是否使能,允許接受的頻道號(hào)和頻道個(gè)數(shù),自動(dòng)重發(fā)時(shí)間和次數(shù),輸出功率頻道選擇。NRF24L01_RxMode()設(shè)置nrf24l01無線模塊為接收模式,包括設(shè)置通訊速率,通訊字節(jié)個(gè)數(shù),本地地址和接收地址,頻道的自動(dòng)答應(yīng)允許是否使能,允許接受的頻道號(hào)和頻道個(gè)數(shù),自動(dòng)重發(fā)時(shí)間和次數(shù),輸出功率頻道選擇。NRF24L01_TxPacket()發(fā)送具體數(shù)據(jù)包。具體實(shí)現(xiàn)代碼:unsigned char NRF24L01_TxPacket(unsigned char* tx_buf, unsigned char len){ unsigned char status = 0x00。 NRF24L01_CE_LOW()。 NRF24L01_Write_Buf(RF_WRITE_REG + RX_ADDR_P0, NRF24L01_ADDRESS, NRF24L01_ADR_WIDTH_5B)。 // 裝載接收端地址 NRF24L01_Write_Buf(WR_TX_PLOAD, tx_buf, len)。// 裝載數(shù)據(jù) NRF24L01_CE_HIGH()。 while(NRF24L01_IRQ() != 0)。 status = NRF24L01_Read_Reg(RF_READ_REG + STATUS)。 NRF24L01_Write_Reg(RF_WRITE_REG + STATUS, status)。 if(status amp。 MAX_TX) { NRF24L01_Write_Reg(FLUSH_TX, 0x00)。 return MAX_TX。 } if(status amp。 TX_OK) { return TX_OK。 } return 0xff。//其他原因發(fā)送失敗}NRF24L01_RxPacket()接收具體數(shù)據(jù)包。具體實(shí)現(xiàn)代碼:unsigned char NRF24L01_RxPacket(unsigned char* rx_buf, unsigned char len){ unsigned char revale = 0。 unsigned char sta = 0。 while(NRF24L01_IRQ() != 0)。 sta = NRF24L01_Read_Reg(RF_READ_REG+STATUS)。 // 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況 NRF24L01_Write_Reg(RF_WRITE_REG+STATUS, sta)。 //接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標(biāo)志 if(sta amp。 RX_OK) // 判斷是否接收到數(shù)據(jù) { NRF24L01_Read_Buf(RD_RX_PLOAD, rx_buf, len)。// read receive payload from RX_FIFO buffer NRF24L01_Write_Reg(FLUSH_RX, 0x00)。 revale = RX_OK。 //讀取數(shù)據(jù)完成標(biāo)志 } return revale。} 攝像頭驅(qū)動(dòng)程序設(shè)計(jì) 圖像采集端的攝像頭驅(qū)動(dòng)代碼由以上兩個(gè)文件組成。OV7670的操作流程如圖32。初始化處理器SCCB接口和攝像頭接口通過SCCB總線對(duì)OV7670寫設(shè)置參數(shù)SCCB傳送的數(shù)據(jù)書否完全到達(dá)OV7670啟動(dòng)OV7670OV7670采集圖像NOYES圖32 對(duì)OV7670操作流程圖(完整形式參見附錄1 ) OV7670_Init()OV7670_Start()OV7670_Detach()OV7670_ISR()OV7670_Init()初始化ARM處理器攝像頭接口和OV7670模塊,并檢測(cè)OV7670模塊是否連接在ARM處理器攝像頭接口上。具體實(shí)現(xiàn)代碼:unsigned char OV7670_Init(void){ unsigned char i。 DCMI_NVIC_Init()。 DCIM_GPIO_Init()。 SCCB_Init()。 OV7670_Reset()。 delay_ms(5)。 for(i = 0。 i OV7670_REG_NUM。 i++) { if(0 == OV7670_WriteReg(OV7670_reg[i][0], OV7670_reg[i][1])) { return 1。 } } return 0。}OV7670_Start()函數(shù)啟動(dòng)OV7670模塊。此函數(shù)跟具體的硬件操作有關(guān),具體實(shí)現(xiàn)代碼:void OV7670_Start(void){ LCD_WriteReg(0x0003, 0x1008)。 LCD_SetCursor(0, 319)。 LCD_WriteRAM_Prepare()。 RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI, ENABLE)。 DCMI_ITConfig(DCMI_IT_FRAME, ENABLE)。//DCMI中斷 DMA_Cmd(DMA2_Stream1, ENABLE)。 DCMI_Cmd(ENABLE)。 DCMI_CaptureCmd(ENABLE)。 LCD_REG = 0x22。}OV7670_Detach()用于解除OV7670模塊對(duì)ARM處理器的攝像頭接口的占用,也有減低系統(tǒng)功耗功能。OV7670_ISR()函數(shù)是OV7670模塊中斷服務(wù)函數(shù),每當(dāng)OV7670模塊采集完一幅圖像后便進(jìn)入此函數(shù)進(jìn)行關(guān)中斷。此函數(shù)跟具體的硬件操作有很大關(guān)聯(lián),具體操作步驟和選用處理器有關(guān),具體實(shí)現(xiàn)代碼:void OV7670_ISR(void){ if(DCMI_GetITStatus(DCMI_IT_FRAME) != RESET) { DCMI_ClearITPendingBit(DCMI_IT_FRAME)。 LCD_SetCursor(0, 319)。 LCD_WriteRAM_Prepare()。 }} LCD顯示驅(qū)動(dòng)程序設(shè)計(jì)發(fā)送端和接受端LCD顯示驅(qū)動(dòng)代碼由以上兩個(gè)文件組成。ili9325的操作流程如圖33。通過FSMC初始化ili9325初始化處理器FSMC接口寫ili9325的寄存器地址寫ili9325的寄存器數(shù)據(jù)圖33 ili9325操作流程圖(完整形式參見附錄1 )LCD_Initializtion()LCD_SetCursor()LCD_SetWindows()LCD_Clear()LCD_Font()LCD_Dispmd()LCD_GetPoint()LCD_SetPoint()LCD_Initializtion()用于初始化ARM處理器的FSMC接口和LCD模塊,有幾個(gè)重要的參數(shù)需要注意:(0x0000,0x0001)開啟內(nèi)部時(shí)鐘(0x0002,0x0700)電源開啟(0x0050,0x0000)水平GRAM起始位置(0x0051,0x00ef)水平GRAM終止位置(0x0052,0x0000)垂直GRAM起始位置(0x0053,0x013f)垂直GRAM終止位置 第一個(gè)參數(shù)是LCD的寄存器地址,第二個(gè)值是給對(duì)應(yīng)的寄存器寫進(jìn)對(duì)應(yīng)的數(shù)值。LCD_SetCursor()函數(shù)是設(shè)置LCD的坐標(biāo)。LCD_SetWindows()函數(shù)是設(shè)置LCD顯示得窗口大小。LCD_Clear()函數(shù)是清除LCD并顯示全屏為一種單一顏色。LCD_Clear()函數(shù)設(shè)置LCD顯示文字的字體。LCD_Dispmd()函數(shù)設(shè)置LCD刷屏的方式。LCD_GetPoint()函數(shù)讀取LCD屏指定像素的RGB值。LCD_SetPo
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1