stm32課程設(shè)計(jì)報(bào)告_第1頁
stm32課程設(shè)計(jì)報(bào)告_第2頁
stm32課程設(shè)計(jì)報(bào)告_第3頁
stm32課程設(shè)計(jì)報(bào)告_第4頁
stm32課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、利用TIM定時(shí)器的中斷和定時(shí)功能實(shí)現(xiàn)跑馬燈一、原理及目的 1、學(xué)習(xí)stm32庫(kù)開發(fā) 2、理解和熟悉I/O的使用;3、進(jìn)一步掌握定時(shí)器、中斷處理程序的編程方法4、利用庫(kù)函數(shù)開發(fā)實(shí)現(xiàn)跑馬燈二、電路原理圖三、流程圖四、軟件算法(代碼)1、Main.c#includestm32f10x.h#includebsp_led.h#includebsp_TiMbase.hvolatileu32time=0;inti=0;intmain(void)LED_GPIO_Config();TIM2_Configuration();TIM2_NVIC_Configuration();RCC_APB1PeriphCloc

2、kCmd(RCC_APB1Periph_TIM2,ENABLE);while(1)if(time=1000)time=0;i+;if(i=3)i=0;switch(i)case0:LED1(OFF);LED2(OFF);LED3(ON);break;case1:LED1(ON);LED2(OFF);LED3(OFF);break;case2:LED1(OFF);LED2(ON);LED3(OFF);break;2、led.c#includebsp_led.hvoidLED_GPIO_Config(void) GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2

3、PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_3;GPIO_Init(GPI

4、OC,&GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_0);GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_3); 3、led.h#ifndef_LED_H#define _LED_H#includestm32f10x.h#defineON0#defineOFF1#defineLED1(a) if(a) GPIO_SetBits(GPIOB,GPIO_Pin_0);else GPIO_ResetBits(GPIOB,GPIO_Pin_0)#defineLED2(a) if(a) GPIO_SetBits(GPIO

5、C,GPIO_Pin_4);else GPIO_ResetBits(GPIOC,GPIO_Pin_4)#defineLED3(a) if(a) GPIO_SetBits(GPIOC,GPIO_Pin_3);else GPIO_ResetBits(GPIOC,GPIO_Pin_3)#define digitalHi(p,i) p-BSRR=i; #definedigitalLo(p,i) p-BRR=i; #definedigitalToggle(p,i) p-ODR=i; #defineLED1_TOGGLE digitalToggle(GPIOB,GPIO_Pin_0)#defineLED1

6、_OFF digitalHi(GPIOB,GPIO_Pin_0)#defineLED1_ON digitalLo(GPIOB,GPIO_Pin_0)#defineLED2_TOGGLE digitalToggle(GPIOC,GPIO_Pin_4)#defineLED2_OFF digitalHi(GPIOC,GPIO_Pin_4)#defineLED2_ON digitalLo(GPIOC,GPIO_Pin_4)#defineLED3_TOGGLE digitalToggle(GPIOC,GPIO_Pin_3)#defineLED3_OFF digitalHi(GPIOC,GPIO_Pin_

7、3)#defineLED3_ON digitalLo(GPIOC,GPIO_Pin_3)voidLED_GPIO_Config(void);#endif/*_LED_H*/bsp_TiMbase.c#includebsp_TiMbase.hvoidTIM2_NVIC_Configuration(void)NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn; NVIC_InitStructure

8、.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);voidTIM2_Configuration(void)TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);TIM_TimeBaseS

9、tructure.TIM_Period=1000;TIM_TimeBaseStructure.TIM_Prescaler=71;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);TIM_ClearFlag(TIM2,TIM_FLAG_Update);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); TIM_Cmd(TIM2,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,DISABLE);

溫馨提示

  • 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. 人人文庫(kù)網(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)論