当前位置: 首页 > news >正文

好的ftp网站宝石汇网站

好的ftp网站,宝石汇网站,搜讯网站开发,wordpress手机导航栏模板1.STM32的通用定时器是可编程预分频驱动的16位自动装载计数器。 STM32 的通用定时器可以被用于:测量输入信号的脉冲长度 ( 输入捕获 ) 或者产生输出波 形 ( 输出比较和 PWM) 等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形 周…

1.STM32的通用定时器是可编程预分频驱动的16位自动装载计数器。

STM32 的通用定时器可以被用于:测量输入信号的脉冲长度 ( 输入捕获 ) 或者产生输出波
( 输出比较和 PWM) 等。
使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形
周期可以在几个微秒到几个毫秒间调整。 STM32 的每个通用定时器都是完全独立的,没有互相
共享的任何资源。
2.相关寄存器:
(1)控制寄存器TIMx_CR1:本次实验中只使用到了最低位,即计数器使能位。
(2) DMA/ 中断使能寄存器( TIMx_DIER ):本次实验中只使用到了最低位,允许更新中断。

 (3)预分频寄存器(TIMx_PSC):该寄存器用来设置对时钟的分频。

 (4)自动重装载寄存器(TIMx_ARR):

(5) 状态寄存器(TIMx_SR):

3.设计思路:通过设置设置通用定时器的中断,并在定时器中断服务函数中反转LED灯。首先,使能定时器的时钟。然后,配置定时器的相关信息 和中断管理的相关信息。最后,编写定时器中断的中断服务函数。

4.代码:

(1)LED:

#ifndef __LED_H
#define	__LED_H#include "stm32f10x.h"void LED_Init(void);#endif
#include "led.h"void LED_Init(void)
{//¶¨Òå¶Ë¿ÚµÄ½á¹¹Ìå:GPIO_InitTypeDef GPIO_InitStruct;//1.ʹÄÜʱÖÓ£ºRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOA,ENABLE);//2.ÅäÖö˿ڽṹÌåµÄÏà¹ØÐÅÏ¢£º£¨LED1£©GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStruct);//ÅäÖÃLED0£ºGPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;GPIO_Init(GPIOA,&GPIO_InitStruct);//³õʼʱ½«LEDµÄ¶Ë¿Ú¶¼ÖÃΪ1£¬¼´Ï¨ÃðGPIO_SetBits(GPIOA,GPIO_Pin_8);GPIO_SetBits(GPIOD,GPIO_Pin_2);
}

(2)TIME:

#ifndef __TIME_H
#define __TIME_H#include "stm32f10x.h"void TIME_Init(u16 arr,u16 psc);#endif
#include "time.h"void TIME_Init(u16 arr,u16 psc)
{//¶¨Ò嶨ʱÆ÷ºÍÖжϽṹÌ壺TIM_TimeBaseInitTypeDef TIM_TimBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;//1.ʹÄܶ¨Ê±Æ÷ʱÖÓ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//2.³õʼ»¯time3£ºTIM_TimBaseStructure.TIM_Period = arr;						//ÉèÖÃ×Ô¶¯ÖØ×°ÔؼĴæÆ÷µÄÖµTIM_TimBaseStructure.TIM_Prescaler = psc;TIM_TimBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;TIM_TimeBaseInit(TIM3,&TIM_TimBaseStructure);TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);								//ÔÊÐí¸üÐÂÖжÏ//3.ÖжÏÅäÖãºNVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_InitStructure);//4.ʹÄܶ¨Ê±Æ÷£ºTIM_Cmd(TIM3,ENABLE);
}
//ÖØÐ´time3µÄÖжϷþÎñº¯Êý£º
void TIM3_IRQHandler(void)
{static int i = 0;//¼ì²éÊÇ·ñ·¢ÉúÖжϣºif(TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET){//Çå³ýtimeµÄ¸üÐÂÖжϱê־λTIM_ClearITPendingBit(TIM3,TIM_IT_Update);if(i){GPIO_SetBits(GPIOA,GPIO_Pin_8);i = !i;}else{GPIO_ResetBits(GPIOA,GPIO_Pin_8);i = !i;}}
}

(3)main:

#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "time.h"int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);LED_Init();TIME_Init(4999,7199);while(1){delay_ms(1000);}}

5.运行结果:

 

 6.总结:本次实验是通过STM32的通用定时器反转LED灯。在实验库函数编程的时候,是比较方便的。但是,为了打好基础,应该去大概的了解一下相关寄存器的功能。

http://www.yayakq.cn/news/134045/

相关文章:

  • 合肥工程建设交易中心网站手机制作海报app
  • 在网站设计中 网页框架设计网站名称和备案公司名称不一样
  • 汉服销售网站建设建筑市场网
  • 快站 淘宝优惠券利用网站文件下载做推广
  • 为什么做网站都用php自己的卡盟网站怎么做分站
  • html网站模板免费服务器能放多少个网站
  • 东莞整站优化火速公司建筑方案ppt模板
  • 开发企业网站费用怎样使用仿站小工具做网站
  • 中山推广网站2014网站设计
  • 邢台网站123肇庆网站建设制作公司
  • 网站域名有哪些舟山市定海区建设规划局网站
  • 模板网站外链做不起来廊坊网站公司
  • 成都科技网站建设联手机写wordpress博客
  • 厦门数字引擎 怎么打不开网站wordpress标题字体改大
  • 东莞响应式网站制作泗泾做网站公司
  • freenom怎么做网站万户网络是干什么的
  • 数码网站建设总体目标品牌营销型网站建设策划
  • 新手建站详细步骤建设项目环保竣工信息公开网站
  • 设计公司网站设计报价明细表精品源码网
  • 网站开发工程师岗位职责要求seo网站推广工具
  • win7 网站配置在线网页代理pc
  • 用wordpress建公司网站步骤国家建筑工程网查询证书
  • 威海建设集团网站首页东莞网站建设渠道
  • 陕西东盟建设工程有限公司网站自动更新的网站建设
  • 科技局网站建设方案苏州做网站建设公司
  • 做网站前两个月应该干什么佛山定制网页设计
  • 数据网站建设工具模板动漫网站源码免费
  • 东莞做阀门的网站如何进行主题网站的资源建设
  • 超炫个人业务网站源码搜索引擎推广的特点
  • 旅游网站制作模板在网站和网页的区别