【STM8L】STM8L之timer2定时中断

本篇博文最后修改时间:2016年11月15日,03:03。


一、简介

本文介绍STM8L系列如何使用timer2产生定时中断


二、实验平台

编译软件:IAR for STM8 1.42.2

硬件平台:stm8l101f3p6开发板

仿真器:ST-LINK

库函数版本:STM8L_STMTouch_Lib_V1.1.0


版权声明

博主:甜甜的大香瓜

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://blog.csdn.NET/feilusia

联系方式:897503845@qq.com

香瓜BLE之CC2541群:127442605

香瓜BLE之CC2640群:557278427

香瓜BLE之Android群:541462902

香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i


四、实验步骤

1、工程中添加自己写的定时器2的驱动

1)写一个驱动GUA_Timer2.c (存放在工程的USER文件夹中)

//******************************************************************************                          
//name:             GUA_Timer2.c             
//introduce:        定时器2驱动      
//author:           甜甜的大香瓜                   
//email:            897503845@qq.com       
//QQ group          香瓜单片机之STM8/STM32(164311667)                    
//changetime:       2016.11.15    
//******************************************************************************  
#include "stm8l10x.h"
#include "GUA_Timer2.h"

//******************************************************************************        
//name:             GUA_Timer2_Init        
//introduce:        定时器2初始化     
//parameter:        none       
//return:           none      
//author:           甜甜的大香瓜             
//email:            897503845@qq.com                
//QQ group          香瓜单片机之STM8/STM32(164311667)                    
//changetime:       2016.11.15                      
//******************************************************************************  
void GUA_Timer2_Init(void)
{
  //时钟配置
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);  

  //1分频,向上计数,每13us定时中断一次 
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_Prescaler_1, TIM2_CounterMode_Up, 16*13);     
  TIM2_ARRPreloadConfig(ENABLE);
  TIM2_ITConfig(TIM2_IT_Update , ENABLE);
  TIM2_Cmd(ENABLE);
}


2)写一个驱动头文件GUA_Timer2.h(存放在工程的USER文件夹中)

//******************************************************************************                          
//name:             GUA_Timer2.h          
//introduce:        定时器2驱动的头文件      
//author:           甜甜的大香瓜                   
//email:            897503845@qq.com       
//QQ group          香瓜单片机之STM8/STM32(164311667)                    
//changetime:       2016.11.15    
//****************************************************************************** 
#ifndef _GUA_TIMER2_H_
#define _GUA_TIMER2_H_
 
/*********************外部函数声明************************/ 
void GUA_Timer2_Init(void);

#endif

3)工程中添加GUA_Timer2.c



4)添加驱动的路径

$PROJ_DIR$\..\USER 
注意USER文件夹是与“Project”等文件夹同级的自定义文件,用于存放香瓜写的代码。

2、添加库的驱动

1)添加库的驱动文件



3、写中断服务函数(stm8l10x_it.c中)
1)添加头文件

#include "GUA_Timer2.h"

2)修改定时器2中断服务函数

INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_BRK_IRQHandler, 19)
{
  TIM2_ClearITPendingBit(TIM2_IT_Update); 
}
暂时没有写任何处理,可自行添加。

4、应用层中调用

1)添加头文件(main.c中)

#include "GUA_Timer2.h"

2)初始化(main.c的main函数中)

  //定时器2初始化
  GUA_Timer2_Init();  

五、实验结果

设置断点在定时器2的中断服务函数中,仿真并全速运行,会不断地进入中断。具体时间香瓜没有测试,先这样。

因此,实验成功。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜的大香瓜

谢谢你的支持^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值