Chinaunix
标题:
赏析之 M3定时器 TIM3计数中断led闪烁 (13)
[打印本页]
作者:
yuweixian4230
时间:
2011-12-21 08:41
标题:
赏析之 M3定时器 TIM3计数中断led闪烁 (13)
工程代码:
6_tim3计数中断led闪烁.rar
#ifndef __TIM3_H
#define __TIM3_H
#include
"stm32f10x_nvic.h"
#include
"stm32f10x_tim.h"
void TIM3_Configuration
(
void
)
;
/
/
初始化 TIM3
void TIM3_NVIC_Configuration
(
void
)
;
/
/
中断优先级配置
#endif
#include
"tim3.h"
/
*
*
rcc时钟配置: SYSCLK
=
16MHZ
*
AHB
=
16MHZ
*
APB1
=
8 MHZ
/
/
TIM2 TIM3 TIM4
*
APB2
=
16 MHZ
/
/
GPIO A B C D
*
/
void TIM3_Configuration
(
void
)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure
;
TIM_TimeBaseStructure
.
TIM_Prescaler
=
1
;
/
/
APB1时钟 2预分频 8MHZ
/
2
=
4MHZ
/
/
1秒时间 4MHZ 的脉冲
TIM_TimeBaseStructure
.
TIM_ClockDivision
=
0
;
TIM_TimeBaseStructure
.
TIM_CounterMode
=
TIM_CounterMode_Up
;
/
/
计数模式
TIM_TimeBaseStructure
.
TIM_Period
=
4000
;
/
/
自动装载 从1
~
4000计数,刚好1ms时间
TIM_TimeBaseInit
(
TIM3
,
&
TIM_TimeBaseStructure
)
;
TIM_ITConfig
(
TIM3
,
TIM_IT_Update
,
ENABLE
)
;
TIM_Cmd
(
TIM3
,
ENABLE
)
;
/
/
需要使能TIM3时钟,我们已经在RCC头文件中 使能了
/
/
RCC_APB1PeriphClockCmd
(
RCC_APB1Periph_TIM3
,
ENABLE
)
;
/
/
定时器3提供时钟
}
/
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
名 称
:
NVIC_Configuration
(
)
*
功 能
:
中断优先级设置
*
入口参数:
*
出口参数:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
*
说明:设置Tim3优先级
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
/
void TIM3_NVIC_Configuration
(
void
)
{
NVIC_InitTypeDef NVIC_InitStructure
;
#ifdef VECT_TAB_RAM
/
*
Set
the Vector Table base
location
at 0x20000000
*
/
NVIC_SetVectorTable
(
NVIC_VectTab_RAM
,
0x0
)
;
#
else
/
*
VECT_TAB_FLASH
*
/
/
*
Set
the Vector Table base
location
at 0x08000000
*
/
NVIC_SetVectorTable
(
NVIC_VectTab_FLASH
,
0x0
)
;
#endif
NVIC_PriorityGroupConfig
(
NVIC_PriorityGroup_2
)
;
/
/
抢占式优先级别
,
无抢占优先级
/
*
Enable the TIM3 Interrupt 使能TIM3中断
*
/
NVIC_InitStructure
.
NVIC_IRQChannel
=
TIM3_IRQChannel
;
NVIC_InitStructure
.
NVIC_IRQChannelPreemptionPriority
=
1
;
NVIC_InitStructure
.
NVIC_IRQChannelSubPriority
=
1
;
NVIC_InitStructure
.
NVIC_IRQChannelCmd
=
ENABLE
;
NVIC_Init
(
&
NVIC_InitStructure
)
;
}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2