嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答 第九章_第1頁
嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答 第九章_第2頁
嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答 第九章_第3頁
嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答 第九章_第4頁
嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答 第九章_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F429章課后題參考答案STM32F429定時(shí)器的計(jì)數(shù)方式有遞增計(jì)數(shù)、遞減計(jì)_、 中心對(duì)齊_。STM32F429計(jì)數(shù)寄存器是TIMx_CNTTIMx_ARR)_,預(yù)分頻寄存器是TIMx_PSC。若TIMx_PSC=4,則時(shí)鐘源的預(yù)分頻系數(shù)是 5 。若TIMx_ARR=89,則一次計(jì)數(shù)溢出的計(jì)數(shù)次數(shù)是 90 。PWM答:PWMPulseWidthModulatio:脈沖寬度調(diào)制,簡(jiǎn)稱脈寬調(diào)制。PWM信號(hào):周期內(nèi)高電平占空比可調(diào)的信號(hào)。占空比:一個(gè)周期內(nèi)高電平持續(xù)時(shí)間與一個(gè)周期時(shí)間的比值。0ARR的值,然后產(chǎn)生一次溢出事件。_ARR00計(jì)數(shù)到ARR-1,然后產(chǎn)生一次向上溢出,再在從ARR計(jì)數(shù)到1,然后產(chǎn)生一次向下溢出。PWM波,在邊沿比較模式下,寄存器ARRPWM期,寄存器CCR控制占空比。PWMTIMx_CNT計(jì)數(shù)值在_0~CCR-1寄存器范圍時(shí),輸出有效電平;在CCR~ARR范圍時(shí),輸出反向電平。定時(shí)器TIM2掛載在APB1(=2PCLKTIM2_PSC=TIM2_ARR=4,則計(jì)數(shù)溢出一次,時(shí)間為多長(zhǎng)?怎么計(jì)算?答:TIM2_PSC+)*TIM2_ARR+/90000000=9*50/90000000=5us答:APB1APB2SystemInit函數(shù)情況下:SYSCLK=180MAHB時(shí)鐘=180MAPB1時(shí)鐘=45M,APB2時(shí)鐘=90MAPB分頻系數(shù)分別是4和2所以,定時(shí)器時(shí)鐘是相應(yīng)掛載總線時(shí)鐘的2倍。TIM11s的定時(shí)。答:TIM1APB2總線上,在系統(tǒng)時(shí)鐘=180MHPCLK2=90MHzTIM1PCLK2*2=180MHz。Tout(定時(shí)時(shí)間)=1s=(ARR+1)(PSC+1)/1800000000,則可以取PSC=18000-1,ARR=10000-1。TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;NVIC_InitTypeDefNVIC_InitStructure;/*-------------------第1步 *///TIM1時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);/*-------------------第2步 */TIM_TimeBaseStructure.TIM_Period=10000-1;TIM_TimeBaseStructure.TIM_Prescaler=18000-1;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_RepetitionCounter=0;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);/*-------------------第3-1步 *///開啟定時(shí)器更新中斷TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//清除定時(shí)器更新中斷標(biāo)志位TIM_ClearFlag(TIM1,TIM_FLAG_Update);/*-------------------第3-2步 *///設(shè)置中斷組為0NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//設(shè)置中斷來源NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn;//設(shè)置搶占優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//設(shè)置子優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);/*-------------------第4步 *///使能定時(shí)器TIM_Cmd(TIM1,ENABLE);TIM3PWM答:TIM3CH1PWM波。PWM200KHz20%。TIM3CH1。GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;/*-------------------第1步 *//*開啟相關(guān)的GPIO外設(shè)時(shí)鐘*/RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//TIM3時(shí)鐘RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/*-------------------第2步 *///TIM3輸出通道3復(fù)用引腳配置GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_TIM3);//TIM3輸出通道1引腳復(fù)用/*TIM3輸出通道3引腳配置*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_25MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*-------------------第3步 *///PWM波的周期//當(dāng)定時(shí)器從0計(jì)數(shù)到999,即為1000次,為一個(gè)定時(shí)周期TIM_TimeBaseStructure.TIM_Period=1000-1;//定時(shí)器時(shí)鐘源TIMxCLK=HCLK/2=90MHz//設(shè)定定時(shí)器頻率為=TIMxCLK/(TIM_Prescaler+1)=200KHzTIM_TimeBaseStructure.TIM_Prescaler=450-1;//采樣時(shí)鐘分頻TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//計(jì)數(shù)方式TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);/*-------------------第4步 *//*設(shè)置比較輸出通道,PWM模式配置*//*PWM1Modeconfiguration:Channel1*/TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse=200;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;

//輸出有效電平為高電平TIM_OC1Init(TIM3,&TIM_OCInitStructure);/*使能通道3重載*/

//使能通道1TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);/*-------------------第5步 *///使能定時(shí)器TIM_Cmd(TIM3,ENABLE);TIM2答:信號(hào)從TIM2的通道1輸入。使用的引腳是PA5。(1)定時(shí)器初始化voidTIM_Config_IC(void){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;NVIC_InitTypeDef NVIC_InitStructure;/*-------------------第1步 *///使能TIM2和相關(guān)GPIO時(shí)鐘RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);/*-------------------第2步 *///配置輸入通道引腳GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_TIM2);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOA,&GPIO_InitStructure);/*-------------------第3步 *///初始化定時(shí)器測(cè)量時(shí)鐘TIM_TimeBaseStructure.TIM_Period=0xFFFFFFFF;//定時(shí)器時(shí)鐘源TIMxCLK=HCLK/2=90MHz//設(shè)定定時(shí)器頻率為=TIMxCLK/(TIM_Prescaler+1)=100KHzTIM_TimeBaseStructure.TIM_Prescaler=90-1;//計(jì)數(shù)方式TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//采樣時(shí)鐘分頻TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//初始化定時(shí)器TIMx,x[1,8]TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);/*-------------------第4步 *///設(shè)置輸入捕獲通道TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//捕抓到上降延時(shí),把計(jì)數(shù)寄存器中的值所存到CCR2寄存器TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;//一對(duì)一連接TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICFilter=0x0;TIM_PWMIConfig(TIM2,&TIM_ICInitStructure);/*-------------------第5步 *///選擇定時(shí)器復(fù)位觸發(fā)源TIM_SelectInputTrigger(TIM2,TIM_TS_TI1FP1);//選擇從模式:復(fù)位模式TIM_SelectSlaveMode(TIM2,TIM_SlaveMode_Reset);/*-------------------第6步 *///開啟定時(shí)器中斷NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //0NVIC_InitStructure.NVIC_IRQChannelTIM2_IRQn;//設(shè)置中斷來源NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);

//設(shè)置子優(yōu)先級(jí)TIM_ITConfig(TIM2,TIM_IT_CC1,ENABLE); //使能捕獲/1中斷請(qǐng)求/*-------------------第7步 */TIM_Cmd(TIM2,ENABLE);//使能定時(shí)器。}(2)中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論