stm32课程设计报告

上传人:小** 文档编号:93481624 上传时间:2019-07-22 格式:DOC 页数:7 大小:558.54KB
返回 下载 相关 举报
stm32课程设计报告_第1页
第1页 / 共7页
stm32课程设计报告_第2页
第2页 / 共7页
stm32课程设计报告_第3页
第3页 / 共7页
stm32课程设计报告_第4页
第4页 / 共7页
stm32课程设计报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《stm32课程设计报告》由会员分享,可在线阅读,更多相关《stm32课程设计报告(7页珍藏版)》请在金锄头文库上搜索。

1、 利用TIM定时器的中断和定时功能实现跑马灯 一、原理及目的 1、学习stm32库开发 2、理解和熟悉I/O的使用; 3、进一步掌握定时器、中断处理程序的编程方法 4、利用库函数开发实现跑马灯 二、电路原理图 三、流程图 四、软件算法(代码) 1、Main.c #include “stm32f10x.h“ #include “bsp_led.h“ #include “bsp_TiMbase.h“ volatile u32 time = 0; int i=0; int main(void) LED_GPIO_Config(); TIM2_Configuration(); TIM2_NVIC_Co

2、nfiguration(); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); while(1) if ( time = 1000 ) time = 0; i+; if(i=3) i=0; switch(i) case 0: LED1(OFF);LED2(OFF);LED3(ON);break; case 1: LED1(ON);LED2(OFF);LED3(OFF);break; case 2: LED1(OFF);LED2(ON);LED3(OFF);break; 2、led.c #include “bsp_led.h“ void

3、LED_GPIO_Config(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( 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_In

4、itStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3; GPIO_Init(GPIOC, GPIO_SetBits(GPIOB, GPIO_Pin_0); GPIO_SetBits(GPIOC, GPIO_Pin_4|GPIO_Pin_3); 3、led.h #ifndef _LED_H #define _LED_H #include “stm32f10x.h“ #define ON 0 #define OFF 1 #define LED1(a) if (a) GPIO_SetBits(GPIOB,GPIO_Pin_0); else GPIO_ResetBi

5、ts(GPIOB,GPIO_Pin_0) #define LED2(a) if (a) GPIO_SetBits(GPIOC,GPIO_Pin_4); else GPIO_ResetBits(GPIOC,GPIO_Pin_4) #define LED3(a) if (a) GPIO_SetBits(GPIOC,GPIO_Pin_3); else GPIO_ResetBits(GPIOC,GPIO_Pin_3) #define digitalHi(p,i) p-BSRR=i; #define digitalLo(p,i) p-BRR=i; #define digitalToggle(p,i) p

6、-ODR =i; #define LED1_TOGGLE digitalToggle(GPIOB,GPIO_Pin_0) #define LED1_OFF digitalHi(GPIOB,GPIO_Pin_0) #define LED1_ON digitalLo(GPIOB,GPIO_Pin_0) #define LED2_TOGGLE digitalToggle(GPIOC,GPIO_Pin_4) #define LED2_OFF digitalHi(GPIOC,GPIO_Pin_4) #define LED2_ON digitalLo(GPIOC,GPIO_Pin_4) #define L

7、ED3_TOGGLE digitalToggle(GPIOC,GPIO_Pin_3) #define LED3_OFF digitalHi(GPIOC,GPIO_Pin_3) #define LED3_ON digitalLo(GPIOC,GPIO_Pin_3) void LED_GPIO_Config(void); #endif /* _LED_H */ bsp_TiMbase.c #include “bsp_TiMbase.h“ void TIM2_NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; NVIC_Prio

8、rityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init( void TIM2_Configuration(void) TIM_TimeBaseIni

9、tTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE); TIM_TimeBaseStructure.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,

10、 TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); TIM_Cmd(TIM2, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , DISABLE); 4、bsp_TiMbase.h #ifndef TIME_TEST_H #define TIME_TEST_H #include “stm32f10x.h“ void TIM2_NVIC_Configuration(void); void TIM2_Configuration(void); #endif 五、效果图

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号