[STM8] 无法进入定时中断

[复制链接]
562|13
 楼主| chenjunt 发表于 2019-11-16 17:50 | 显示全部楼层 |阅读模式
void CLK_HSI_Init(void)
{
   CLK_CKDIVR = 0x00;
}
/*====================================================
                *功能说明:初始化16位定时器2、定时周期1ms
                *传入参数:无
                *返回参数:无
======================================================*/
void Time2_Init(void)
{
  CLK_PCKENR1 |= 0x01;  //打开时钟                           
  TIM2_IER  = 0x00;     // 禁止中断,停止定时器
  TIM2_PSCR = 0x01;     //计数器时钟=主时钟/1=16MHZ/1
  TIM2_CNTRH = 0;       //计数器的初值
  TIM2_CNTRL = 0;
  TIM2_ARRH  = 0x1F;    //注意必须保证先写入高8位
  TIM2_ARRL  = 0x60;    //再写入低8    (计算值3936 = 0x1F60)
  TIM2_EGR   = 0x01;    //允许产生更新事件        
  TIM2_CR1   = 0x01;    //b0 = 1,允许计数器工作,b1 = 0,允许
  TIM2_SR1   = 0x00;    //清除TIM2溢出中断标志位
  TIM2_IER   = 0x01;    //允许更新中断,启动定时器
}
/*====================================================
                *功能说明:时钟、定时器设置
                *传入参数:无
                *返回参数:无
======================================================*/
void Init_UserTime(void)
{
  CLK_HSI_Init();
        
  Time2_Init();

  asm("rim");        //打开所有中断
}
/*====================================================
                *功能说明:定时器2中断函数
                *传入参数:无
                *返回参数:无
======================================================*/
#pragma vector=TIM2_OVR_UIF_vector  //0x0D  
__interrupt void TIM2_OVR_UIF_IRQHandler(void)  
{
  TIM2_SR1 = 0x00;     // 清除TIM2溢出中断标志位
  return;
}

int main(void)
{
  Init_UserTime();

  while(1);
}


使用的是STM8L052C6这款芯片,但是进不了定时中断,是为什么啊
juventus9554 发表于 2019-11-16 17:53 | 显示全部楼层
确认下代码,系统及外设时钟是否正确配置;
gongche 发表于 2019-11-16 17:57 | 显示全部楼层
中断配置是否正确;
zhuhuis 发表于 2019-11-16 17:59 | 显示全部楼层
中断矢量号是否正确;
dingy 发表于 2019-11-16 18:02 | 显示全部楼层
貌似系统时钟初始化有误。

CLK_ICKR   |=  0X1;           
     while(!(CLK_ICKR&0X2));   
  CLK_CKDIVR &=  0X00;      
  CLK_SWR   =    0XE1;
songqian17 发表于 2019-11-16 18:06 | 显示全部楼层

寄存器操作;
找个参考代码,比对下就知道了呀
tian111 发表于 2019-11-16 18:12 | 显示全部楼层
不建议用寄存器的,用HAL的吧。定时器配置简单的很。
kangzj 发表于 2019-11-16 18:15 | 显示全部楼层
别自己配置了,麻烦。
香水城 发表于 2019-11-20 13:21 | 显示全部楼层
1、首先确认下定时器跑起来没有
2、除了中断配置正确外,中断矢量的正确或使用正确的启动文件
观海 发表于 2019-12-10 13:05 | 显示全部楼层
开启总中断了吗
八层楼 发表于 2019-12-10 13:08 | 显示全部楼层
io口配置了吗
晓伍 发表于 2019-12-10 13:12 | 显示全部楼层
单步运行看看哪里的问题
晓伍 发表于 2019-12-10 13:12 | 显示全部楼层
单步运行看看哪里的问题
磨砂 发表于 2019-12-10 13:14 | 显示全部楼层
至少看看进入定时器没有啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部