[STM8] 无法进入定时中断

[复制链接]
1332|19
 楼主| chenjunt 发表于 2021-11-14 23:55 | 显示全部楼层 |阅读模式
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 发表于 2021-11-14 23:57 | 显示全部楼层
确认下代码,系统及外设时钟是否正确配置;
kiwis66 发表于 2021-11-15 11:25 | 显示全部楼层
一般这种,只能是仿真,直接看,我很难看出来
juventus9554 发表于 2021-11-19 22:56 | 显示全部楼层
中断配置是否正确;
supernan 发表于 2021-11-19 22:58 | 显示全部楼层
貌似系统时钟初始化有误。

CLK_ICKR   |=  0X1;           
     while(!(CLK_ICKR&0X2));   
  CLK_CKDIVR &=  0X00;      
  CLK_SWR   =    0XE1;
shimx 发表于 2021-11-19 23:00 | 显示全部楼层

寄存器操作;
找个参考代码,比对下就知道了呀
jiajs 发表于 2021-11-19 23:02 | 显示全部楼层
不建议用寄存器的,用HAL的吧。定时器配置简单的很。
chuxh 发表于 2021-11-19 23:04 | 显示全部楼层

别自己配置了,麻烦。
dingy 发表于 2021-11-19 23:06 | 显示全部楼层
确认下定时器跑起来没有
dengdc 发表于 2021-11-19 23:08 | 显示全部楼层
除了中断配置正确外,中断矢量的正确或使用正确的启动文件
jlyuan 发表于 2021-11-19 23:10 | 显示全部楼层
开启总中断了吗
dingy 发表于 2021-11-19 23:12 | 显示全部楼层
io口配置了吗
morrisk 发表于 2021-11-19 23:15 | 显示全部楼层
单步运行看看哪里的问题
supernan 发表于 2021-11-19 23:18 | 显示全部楼层
至少看看进入定时器没有啊
 楼主| chenjunt 发表于 2021-11-19 23:22 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
tfqi 发表于 2021-12-9 15:42 | 显示全部楼层
确认中断配置正确与否
kxsi 发表于 2021-12-9 15:45 | 显示全部楼层
代码 里边中断使能了吗
nawu 发表于 2021-12-9 15:46 | 显示全部楼层
实际上有中断源吗
qcliu 发表于 2021-12-9 15:48 | 显示全部楼层
是不是配置有问题啊
wiba 发表于 2021-12-9 15:51 | 显示全部楼层
能产生中断吗  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

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