打印
[STM8]

无法进入定时中断

[复制链接]
798|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 | 只看该作者
中断配置是否正确;

使用特权

评论回复
5
supernan| | 2021-11-19 22:58 | 只看该作者
貌似系统时钟初始化有误。

CLK_ICKR   |=  0X1;           
     while(!(CLK_ICKR&0X2));   
  CLK_CKDIVR &=  0X00;      
  CLK_SWR   =    0XE1;

使用特权

评论回复
6
shimx| | 2021-11-19 23:00 | 只看该作者

寄存器操作;
找个参考代码,比对下就知道了呀

使用特权

评论回复
7
jiajs| | 2021-11-19 23:02 | 只看该作者
不建议用寄存器的,用HAL的吧。定时器配置简单的很。

使用特权

评论回复
8
chuxh| | 2021-11-19 23:04 | 只看该作者

别自己配置了,麻烦。

使用特权

评论回复
9
dingy| | 2021-11-19 23:06 | 只看该作者
确认下定时器跑起来没有

使用特权

评论回复
10
dengdc| | 2021-11-19 23:08 | 只看该作者
除了中断配置正确外,中断矢量的正确或使用正确的启动文件

使用特权

评论回复
11
jlyuan| | 2021-11-19 23:10 | 只看该作者
开启总中断了吗

使用特权

评论回复
12
dingy| | 2021-11-19 23:12 | 只看该作者
io口配置了吗

使用特权

评论回复
13
morrisk| | 2021-11-19 23:15 | 只看该作者
单步运行看看哪里的问题

使用特权

评论回复
14
supernan| | 2021-11-19 23:18 | 只看该作者
至少看看进入定时器没有啊

使用特权

评论回复
15
chenjunt|  楼主 | 2021-11-19 23:22 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
16
tfqi| | 2021-12-9 15:42 | 只看该作者
确认中断配置正确与否

使用特权

评论回复
17
kxsi| | 2021-12-9 15:45 | 只看该作者
代码 里边中断使能了吗

使用特权

评论回复
18
nawu| | 2021-12-9 15:46 | 只看该作者
实际上有中断源吗

使用特权

评论回复
19
qcliu| | 2021-12-9 15:48 | 只看该作者
是不是配置有问题啊

使用特权

评论回复
20
wiba| | 2021-12-9 15:51 | 只看该作者
能产生中断吗  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

7868

帖子

5

粉丝