当前位置:首页 > 单片机 > 单片机
[导读]通用定时器的功能非常强大,能够测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM),也能够用于定时中断任务。其实系统滴答和实时时钟功能类似于定时器。51单片机也有定时器,可以使用软件的方式

通用定时器的功能非常强大,能够测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM),也能够用于定时中断任务。其实系统滴答和实时时钟功能类似于定时器。51单片机也有定时器,可以使用软件的方式实现实时时钟的功能,就是断电后会到初始状态了。

神舟IV开发板采用的是STM32F107VCT,内部含有多达10个定时器,其中TIM1和TIM8是高级控制定时器在APB2总线上,TIM2—TIM7是挂在APB1上的,所以使用起来要注意的是,开启不同的时钟。

我们就用通用定时器TIM2实现LED以1s速度流水灯的功能。首先我们看看时钟,TIM2挂在APB1总线上,而APB1的最大时钟速度为36MHZ。由于系统初始化将APB1的分频比设置为2,所以TIM2的时钟就是APB1时钟的2倍,等于系统时钟。TIM2具有16位可编程预分频器,范围可以从1到65536之间。这里我们设置分频比为7200,得到10KHZ的计数时钟。再设置自动装载的计数值为10000,这样就得到1s的定时器间隔,最后使能中断,配置中断函数。


主要代码为:

static void NVIC_Configuration(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

/* Set the Vector Table base address at 0x08000000 */

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);

/* Enable the TIM5 gloabal Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

int main(void)

{

/* Setup STM32 system (clock, PLL and Flash configuration) */

SystemInit();

/* Add your application code here

*/

LED_Configuration();//LED时钟和端口配置

TIM2_Configuration();//TIM2时钟和端口配置

NVIC_Configuration();//中断配置

/* Infinite loop */

while (1)

{

}

}

void TIM2_IRQHandler(void)//定时器中断函数

{

if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)

{

TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

LED_Spark();//led流水灯

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

学习目标 STM32F103C8T6芯片简介 核心板原理图 搭建流水灯电路 修改工程模板 代码实现 成果展示 资料获取 推荐阅读 后台网友建议制作一个流水灯,正好发现自己有之前购买的STM32F103C8T6核心板,今天...

关键字: 流水灯 STM32F103 最小系统板

电路仿真软件的使用越来越多,大家对电路仿真软件也越来越了解。该系列对于电路仿真软件的介绍均基于proteus软件,本文针对电路仿真软件的讲解同样不例外。本文中,主要介绍电路仿真软件proteus和Keil软件进行流水灯电...

关键字: proteus 指数 流水灯 电路仿真软件

我用的开发板是天翔电子的TX-1C,单片机是STC89C52RC。

关键字: 单片机 流水灯

由于P0口内部没有上拉电阻,所以P0在用作输入、输出时要外接上拉电阻,一般取10k左右。

关键字: 单片机 流水灯

#include unsigned char LED; unsigned int table[8] = {BIT0,BIT1,BIT2,BIT3,BIT4,BIT5,BIT6,BIT7}; void main( void...

关键字: MSP430 流水灯

让一个LED灯闪烁不过瘾,我们应该让这块开发板完成一点更高难度的任务:比如让两个LED灯闪烁。……当然了,以我们的现在使用的空循环技术,还是可以实现这点的。但是这样显得略为低端。所以我们使用一个高端点的技术

关键字: led闪烁 sam4e 单片机 定时器中断

由于P0口内部没有上拉电阻,所以P0在用作输入、输出时要外接上拉电阻,一般取10k左右。程序如下:#include //头文件#define uchar unsigned char#define uint unsigne...

关键字: 单片机 流水灯

今天多学习几个模块,首先是蜂鸣器。板上所用的是无源蜂鸣器,可以用直流电压直接驱动。还有一种叫有源蜂鸣器,要使用频率的方波才能驱动。使用的蜂鸣器的驱动电压,典型值为5V,额定工作电流为30mA。STM32的GPIO管脚

关键字: 串口 打印 神舟iv 蜂鸣器

RTC(real-time clock)也就我们日常看到的时钟,STM32内部专门使用了一组32位计数器,通过软件的方式编写出当前的时间和日期。首先我们从图中可以看出RTC的时钟来源有三个:(1)是高速外部时钟HSE除以...

关键字: rtc 实时时钟 神舟iv

就如你学习编程语言你写下的“Hello world”,LED流水灯也是这样的一个例子。通过这个实验,我们可以快速了解到51单片机I/O口的基本用法,以及LED灯的基本原理。LED(发光二极管),是一种能够将电能转化为光能...

关键字: LED 单片机 流水灯
关闭
关闭