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

正文內容

畢業(yè)設計-基于stm32的智能小車設計-文庫吧資料

2025-06-26 13:10本頁面
  

【正文】 IM5)。}} if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕獲1發(fā)生捕獲事件 { if(TIM5CH1_CAPTURE_STAamp。//標記成功捕獲了一次 TIM5CH1_CAPTURE_VAL=0XFFFF。0X40)//已經捕獲到高電平了 { if((TIM5CH1_CAPTURE_STAamp。我們知道了如何設置TIM5的CH1為輸入捕獲模式,我們是在TIM5的中斷服務函數中采集持續(xù)時間t的,TIM5CH1_CAPTURE_STA為輸入捕獲狀態(tài),TIM5CH1_CAPTURE_VAL為輸入捕獲值,中斷服務函數如下所示:if((TIM5CH1_CAPTURE_STAamp。216。 NVIC_Init(amp。 = 0。 設置中斷分組并編寫中斷服務函數=TIM5_IRQn。TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE)。216。//IC1F=0000 TIM_ICInit(TIM5, amp。 = TIM_ICPSC_DIV1。 =TIM_ICPolarity_Rising。 設置TIM5的輸入比較參數,開啟捕獲模式。TIM_TimeBaseStructure)。 = TIM_CounterMode_Up。 =psc。 初始化TIM5,設置TIM5的psc和arr。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)。 開啟TIM5時鐘以及GPIOA時鐘。然后,我們再看看控制寄存器TIMx_CR1,我們只用到了最低位,所以我們僅介紹位0的功能,TIMx_CR1寄存器各位描述及位0功能描述如下如所示: TIMx_CR1寄存器各位描述及位0功能描述我們要使能計數器,所以位0設置為1。接著我們再來看看捕獲/比較使能寄存器TIMx_CCER,本節(jié)用到了CC1E和CC1P兩位,描述如下圖所示: TIMx_CCER最低兩位描述所以要使能通道CH1輸入捕獲,CC1E必須設置為1,而CC1P則可以根據實際情況設置。TIM5_PSC、TIM5_ARR、TIM5_CCR1這3個寄存器用法與前節(jié)中相同,我們就不在贅述,而在本實驗中,捕獲/比較寄存器TIM5_CCMR1非常重要,該寄存器的各位描述如下圖所示: TIMx_CCMR1各位描述我們使用的是TIM5捕獲/比較通道CH1,所以圖中只介紹[7:0]位。為了使TIM5通道CH1具有捕獲功能,我們需要用到TIM5_PSC、TIM5_ARR、捕獲/比較模式寄存器(TIM5_CCMR1)、捕獲/比較使能寄存器(TIM5_CCER)、捕獲/比較寄存器(TIM5_CCR1)、DMA/中斷使能寄存器(TIM5_DIER)、控制寄存器(TIM5_CR1)。輸入捕獲的原理,簡單的講就是通過檢測TIM5(定時器)通道CH1的邊沿信號,當邊沿信號發(fā)生變化時,當前寄存器的值TIM1_CNT存放到通道的捕獲/比較寄存器(TIM5_CCR1)里面。我們開啟TIM5通道CH1(定時器5)的輸入捕獲模式,采集ECHO端口的高電平持續(xù)時間。 GPIO_ResetBits(GPIOC,GPIO_Pin_7)。 GPIO_SetBits(GPIOC,GPIO_Pin_7)。 由于配置定時器中斷模式十分簡單,我們就不在詳細介紹,=((arr+1)*(psc+1))/Tclk。 HCSR04模塊程序設計根據硬件電路的設計,我們對避障子程序進行設計,: 避障程序流程圖避障模塊在程序設計中,我們的工作主要是:控制超聲波的掃描周期采集超聲波發(fā)射到接受的高電平持續(xù)時間t對采集的高電平持續(xù)時間t進行處理,判斷前方是否有障礙下面我們就詳細介紹我們是怎么通過軟件設計來完成這幾個步驟的:控制超聲波的掃描周期根據表22,我們采用的是TIM2來控制超聲波的掃描周期。: 舵機角度與脈寬對應圖 HCSR04模塊硬件電路設計超聲波模塊硬件原理圖如下圖所示: 超聲波硬件原理圖HCSR04模塊主要由發(fā)射器、接收器和部分電路組成。舵機的轉動角度與stm32所提供的PWM信號相關。經由電路板上的IC舵機在避障模塊的主要作用前面已經提到,本節(jié)主要講解舵機的工作特性。并且由于HCSR04的感應角度不大于15176。: 超聲波時序圖我們根據時序圖,可以編寫相應的程序代碼?;驹砣缦拢翰捎肐O口TRIG觸發(fā)測距,給至少10us的高電平信號,在TRIG觸發(fā)沿到來后,超聲波發(fā)射器會自動發(fā)出8個40KHz的方波,并且檢測是否有信號返回,當超聲波接收器接收到超聲波時,表明有信號返回,通過IO口ECHO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。 避障模塊器件結構及其原理HCSR04超聲波測距模塊測量范圍在2cm400cm之間,可以實現無接觸式測距功能。舵機的主要作用是改變HCSR04模塊的照射方向,從而控制超聲波的發(fā)射方向。本次試驗我們使用的是HCSR04超聲波檢測,超聲波由于具有檢測能力強,傳播路徑寬,因此我們決定使用HCSR04器件。避障模塊可以采集外部地形數據,然后把所采集的地形數據傳輸到中央處理模塊,從而實現躲避障礙的功能。主要代碼詳見附錄3. 避障模塊設計在人類身體構造系統(tǒng)中,眼睛可以使我們非常方便的采集到外界環(huán)境的信息,然后把信息及時的傳輸到大腦,并對外界環(huán)境信息的變化做出相應的處理。PD8置0我們知道了如何對端口進行操作之后就可以隨意的控制小車的運動啦,運動方向的程序設計,其基本函數單元如下所示:void Left_Low(void)。 操作I/0口GPIO_SetBits(GPIOD,GPIO_Pin_8)。GPIO_InitStructure)。 = GPIO_Speed_50MHz。 初始化I/O參數,調用格式如下所示:=GPIO_Pin_8。 使能I/O口時鐘,調用格式如下所示:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOC, ENABLE)。我們僅介紹如何通過庫函數進行端口配置。我們只需要調用此函數就可以實現不同的速度控制。我們可以知道,通過定時器3控制PWM波的占空比,從而實現速度方面的控制。 通過修改TIM3_CCRx(x為1,2,3)來控制占空比。庫函數調用格式如下: TIM_Cmd(TIM3, ENABLE)。 使能TIM3。TIM_OCInitStructure)。TIM_OCInitStructure)。TIM_OCInitStructure)。 = TIM_OCPolarity_High。 =TIM_OutputState_Enable。在庫函數中PWM通道設置是通過TIM_OC1Init~TIM_OC4Init來設置的,這里我們需要3路PWM輸出,所以我們需要使用函數TIM_OC1Init、TIM_OC2Init、TIM_OC3Init。216。 TIM_TimeBaseInit(TIM3, amp。 =0。調用的格式如下: =arr。 初始化TIM3,設置TIM3的PSC和ARR。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE)。使能GPIO和端口復用功能時鐘。216。最后介紹捕獲/比較寄存器(TIMx_CCR1~4),總共有4個,分別對應CH1~4,因為這4個寄存器相似,我們僅以TIMx_CCR1為例,該寄存器的給位介紹如下圖所示: TIMx_CCR1寄存器各位描述在輸出模式下,該寄存器的值與CNT中的值進行比較,根據結果,實現電平的翻轉。如果我們想使能輸入/捕獲1,我們只需使用CC1E位。OC2M(控制通道CH2)各位描述與OC1M相同,我們這要不在敘述。其次我們介紹捕獲/比較模式寄存器(TIMx_CCMR1/2),總共有兩個,TIMx_CCMR1和TIMx_CCMR2,TIMx_CCMR1控制通道CH1和CH2,TIMx_CCMR2控制CH3和CH4。該寄存器的各位功能如圖所示: TIMx_PSC寄存器各位描述接下來介紹自動重裝載寄存器(TIMx_ARR),該寄存器的各位描述如下圖所示: TIMx_ARR寄存器各位描述通過設置這兩個寄存器,我們就可以算出PWM的輸出周期,計算公式為:Tout=((arr+1)*(psc+1))/Tclk。我們先介紹這幾個寄存器,然后介紹如何使用庫函數產生PWM輸出。當KK2導通時,KK4關斷,電機兩端加正向電壓,電機實現正轉或反轉制動;當KK4導通時,KK2關斷,電機兩端為反向電壓,電機實現反轉或正轉制動。電機驅動模塊的主要器件為LM293N,我們下面就詳細講解下電機驅動模塊。 //以1Mhz的頻率計數 while(1) { farward_Low();delay_ms(10)。 //控制超聲波掃描周期 TIM3_PWM_Init(1999,719)。 //端口初始化 EXTIX_Init()。 //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級 LED_Init()。 //輸入捕獲值delay_init()。本實驗所采用的定時器以及功能如下表所示:表22定時器介紹表定時器名稱定時器配置模式主要功能TIM2定時器中斷模式通過定時器中斷,控制超聲波的掃描周期TIM3PWM復用輸出模式控制小車速度及舵機轉向TIM5輸入捕獲模式采集超聲波發(fā)射到接受的高電平持續(xù)時間t 主程序設計流程圖在本節(jié)實驗中,循跡模塊以及避障模塊都是采用中斷方式進行工作的,因此其主程序流程圖如下圖所示: 主程序流程圖根據程序設計圖,主程序設計如下: int main(void) { u8 TIM5CH1_CAPTURE_STA=0。對于定時器的詳細內容,我們不在這里一一介紹。216。 NVIC_Init(amp。 = 0x06。 配置中斷分組NVIC,并使能中斷 = EXTI1_IRQn。EXTI_InitStructure)。 = ENABLE。 = EXTI_Mode_Interrupt。 初始化線上中斷,設置觸發(fā)條件GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource1)。GPIO_InitStructure)。 = GPIO_Mode_IPU。216。步驟如下:216。由于我們采用的是外部信號觸發(fā)中斷,所以我們只需了解外部中斷的請求機制,對于事件的中斷請求機制,我們在這里不做介紹。之后進入“中斷掛起請求寄存器”,該寄存器記錄了外部信號的電平變化。其次這個外部信號通過編號2的邊沿檢測電路,這個邊沿檢測電路受到“上升沿選擇寄存器”、“下降沿選擇寄存器”的控制,我們可以控制這兩個寄存器來選擇中斷的觸發(fā)方式。結構圖如下所示: stm32外部中斷/事件控制器結構圖圖中的實線箭頭,為外部中斷信號的傳輸路徑。} (x可以是A,B,C,D,E…比如GPIO_A就是端口A)通過使用GPIO_ResetBits()函數就可以直接對寄存器進行操作啦。固件庫的本質就是函數的集合,固件庫將那些寄存器的底層操作都封裝起來,提供一整套API供開發(fā)者使用。 (x可以是A,B,C,D,E…比如GPIOA就是端口A)但是,對于stm32這種級別的處理器,幾百個寄存器記起來談何容易。任何處理器,包括stm32處理器,想要處理器完成某項相應的動作,就必須對處理器的寄存器進行操作。 : JAG電路原理圖JTAG的主要功能是使目標文件燒到核處理器中。 : 復位電路圖本次試驗所采用的開發(fā)板為低電平復位。最小系統(tǒng)電路原理圖如圖213所示: 最小系統(tǒng)電路原理圖主要電路原理圖的設計及功能如下所示: 系統(tǒng)時鐘電路主要作用是提供節(jié)拍,就相當于人類的心臟跳動,隨著心臟的跳動,血液就會到達全身部位,所以系統(tǒng)時鐘的重要性就不言而喻啦。我們實驗所采用的芯片具有64KBSRAM、512KBFLASH、2個基本定時器,4個通用定時器,2個高級定時器,3個SPI,2個IIC,5個串口,1個USB,1個CAN,3個12位的ADC,1個12位DAC、1個SDIO接
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1