stm32课程设计报告.doc_第1页
stm32课程设计报告.doc_第2页
stm32课程设计报告.doc_第3页
stm32课程设计报告.doc_第4页
stm32课程设计报告.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用TIM定时器的中断和定时功能实现跑马灯一、原理及目的 1、学习stm32库开发 2、理解和熟悉I/O的使用;3、进一步掌握定时器、中断处理程序的编程方法4、利用库函数开发实现跑马灯二、电路原理图三、流程图四、软件算法(代码)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_APB1PeriphClockCmd(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_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_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_3;GPIO_Init(GPIOC,&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(GPIOC,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_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_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.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_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,&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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论