你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8S105 TIMER4无法运行

[复制链接]
fengmailx 提问时间:2015-7-9 10:33 /

STM8S105   单片机进行TIMER4初始化用来计时,但是只要打开全局中断就会进入中断向量表TLI中断,并且TIMER4中断服务程序似乎并没有执行,帮忙看看是怎么回事?



void Timer4Init(void)
{
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, ENABLE);
        TIM4_TimeBaseInit(TIM4_PRESCALER_128, 125);                 // 8us/Tick, 125x8=1000us,1mS  
        TIM4_ClearFlag(TIM4_FLAG_UPDATE);
        TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
        enableInterrupts();
        TIM4_Cmd(ENABLE);
}

QQ图片20150709103021.png

Briquet.rar

下载

442.07 KB, 下载次数: 6, 下载积分: ST金币 -1

收藏 评论15 发布时间:2015-7-9 10:33

举报

15个回答
fengmailx 回答时间:2015-7-9 10:37:14
不知道为什么程序总是进入TLI中断
MrJiu 回答时间:2015-7-9 10:48:06
void InitTime4(void)
{
    /*      
     * TIM4  1ms 16M
     */
    CLK->PCKENR1 |= 0X10;
    SoftDelay(100);
    TIM4->EGR = 0X01;
    TIM4->IER = 0X01;
    TIM4->PSCR = 0X06;
    TIM4->CNTR = 0XFA; //250
    TIM4->ARR = 0XFA; //250
    TIM4->CR1 = 0X01;

    /* 使能全局中断 */
    __asm("rim");
}

寄存器版的,STM8S系列从不用库.......晶振是16M的,定时1MS一中断....
MrJiu 回答时间:2015-7-9 10:48:23
只能帮你到这里了................
fengmailx 回答时间:2015-7-9 10:51:20
我试过 直接用寄存器的操作,也是一样的结局,跳到向量表TLI中断处,死在那了。
zhuoyemp4 回答时间:2015-7-9 11:52:10
PD7是外部最高优先级的中断源,看看是不是开了PD7的中断
魅影迷踪 回答时间:2015-7-9 12:24:42
应该还是配置问题
alvin_ 回答时间:2015-7-9 13:47:15
fengmailx 发表于 2015-7-9 10:37
不知道为什么程序总是进入TLI中断

总是进入TLI……那你看你TLI管脚有没有问题!硬件
moyanming2013 回答时间:2015-7-9 15:24:53
不懂,顶顶
fengmailx 回答时间:2015-7-9 22:02:13
zhuoyemp4 发表于 2015-7-9 11:52
PD7是外部最高优先级的中断源,看看是不是开了PD7的中断

我将PD7设置成输出模式,这时候应该没有中断了把,还是进入了TLI中断向量入口点
fengmailx 回答时间:2015-7-9 22:03:32
alvin_ 发表于 2015-7-9 13:47
总是进入TLI……那你看你TLI管脚有没有问题!硬件

PD7管脚控制一个MOS管,属于输出模式,电路应该没有问题。
fengmailx 回答时间:2015-7-9 22:53:12
好吧终于进入TIMER4中断了
原因:
   主要原因为官方提供的库文件stm8s_it.c文件中屏蔽了NonHandledInterrupt中断实例,但是在stm8s_it.h文件中却提供了声明 INTERRUPT void NonHandledInterrupt(void);   导致编译器不会报错,
哎,真是坑爹呀!

但至于为什么总是进入TLI中断,还不能理解,希望有懂得TLI中断的帮忙解释下TLI中断的原理。
INTERRUPT_HANDLER(NonHandledInterrupt, 25)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
}
埃斯提爱慕 回答时间:2015-7-9 22:57:54
提示: 作者被禁止或删除 内容自动屏蔽
fengmailx 回答时间:2015-7-9 23:29:20
MrJiu 发表于 2015-7-9 10:48
只能帮你到这里了................

不明白你为什么从不用库文件,如果是中断服务程序,追求速度那最好是直接操作,但是主程序的话也无所谓吧。
112207301219 回答时间:2015-7-10 00:07:33
没碰到过这个问题,帮顶一击
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版