历史上的今天
今天是:2025年02月23日(星期日)
2021年02月23日 | TIMER2定时器不能进入中断的问题
2021-02-23 来源:eefocus
STM8S103的引脚封装图如下

是一个20管脚的51类型单片机,8Kflash 1kRAM。
STM8S207引脚封装如下

一个48引脚64KFLASH和6K的RAM,也是51单片机,但串口和定时器的功能多了。
从手册看,timer1是ADVANCED 定时器,timer 2 3是通用型定时器。
在移植过程中以为只要改动器件类型同时在stm8s.h内将
#ifndef __STM8S_H
#define __STM8S_H
#define STM8S207 //STM8S103
103注释掉并开通207的宏定义。
定时器初始化如下
void TIM1_Init(void)
{
TIM1_DeInit(); //定时器1相关寄存器复位
TIM1_TimeBaseInit(7, TIM1_COUNTERMODE_UP, 9999, 0); //中断时间10ms
// TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 1500, 0); //中断时间ms
TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); //使能中断
TIM1_Cmd(ENABLE); //使能TIM1
}
void TIM2_Init(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_1, 125*20);//20ms中断
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //使能中断
ITC_SetSoftwarePriority(ITC_IRQ_TIM2_OVF, ITC_PRIORITYLEVEL_2);//设置d定时器中断优先级 2
TIM2_Cmd(ENABLE);//使能定时器1
}
但是通过单步调试,确无法进入中断
#pragma vector=ITC_IRQ_TIM2_OVF + 2
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
{
TIM2_ClearFlag(TIM2_FLAG_UPDATE); //清定时器1更新中断标志
}
观察寄存器发现 TIMER2 的寄存器值TIMER2_IER无法开通中断也就是使能中断 ,手册和register都显示timer2 的寄存器很少。TIMER1和TIMER2的比较如下


后来在stm8s_timer2.h里发现了端倪
typedef struct TIM2_struct
{
__IO uint8_t CR1;
// __IO uint8_t RESERVE1;
// __IO uint8_t RESERVE2; //注释掉用于STM8S207 否则用于stm8s103
__IO uint8_t IER;
__IO uint8_t SR1;
__IO uint8_t SR2;
__IO uint8_t EGR;
__IO uint8_t CCMR1;
__IO uint8_t CCMR2;
__IO uint8_t CCMR3;
__IO uint8_t CCER1;
__IO uint8_t CCER2;
__IO uint8_t CNTRH;
__IO uint8_t CNTRL;
__IO uint8_t PSCR;
__IO uint8_t ARRH;
__IO uint8_t ARRL;
__IO uint8_t CCR1H;
__IO uint8_t CCR1L;
__IO uint8_t CCR2H;
__IO uint8_t CCR2L;
__IO uint8_t CCR3H;
__IO uint8_t CCR3L;
}
TIM2_TypeDef;
也就是在给timer2 的寄存器赋值时由于多了两个没用的,将数值顶替了,注释掉可以了。
上一篇:STM8s 定时器2使用
史海拾趣
|
本来有个2440的源码可以改的,以为SD卡部分可以不用改,轻松了.结果发现2440和我的2416在SD卡支持方面差别比较大. 大家帮忙讲讲SD卡读写方面的知识(SD设备,不是SPI也不是MMC).就当是复习吧,也可以告诉我哪有SD卡方面的资料看,这些资料网上比较少.… 查看全部问答> |
|
求教: 本人做了一个16*16的LED屏,它是由89C52+74HC154控制 P0和P2口控制行(LED的阳级) P1口连接74HC154控制列(LED阴级) 现在问题是输出的字是看不懂,求高手指点. uchar code hanzi[]={ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x ...… 查看全部问答> |
|
两年一届的“全国大学生电子设计竞赛”已经成为全国各高校师生热切盼望的一项重大赛事和广泛开展类似竞赛活动的实践平台。十余年来,竞赛“政府主办,专家主导,学生主体,社会参与”的组织运行模式也在不断完善,有力推动了教育教学改革,为人才培 ...… 查看全部问答> |
|
使用的是freescale dsp 8157(6核),目前只能调试核0,在debug configuration中选择其他核时无法仿真(不会进入到该核的程序入口),不知需要怎样配置才行。 谢谢… 查看全部问答> |




