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); } |
Briquet.rar
下载442.07 KB, 下载次数: 6, 下载积分: ST金币 -1
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
STM8S003F3 NRST电压低,无法开机
{
/*
* 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一中断....
总是进入TLI……那你看你TLI管脚有没有问题!硬件
我将PD7设置成输出模式,这时候应该没有中断了把,还是进入了TLI中断向量入口点
PD7管脚控制一个MOS管,属于输出模式,电路应该没有问题。
原因:
主要原因为官方提供的库文件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.
*/
}
不明白你为什么从不用库文件,如果是中断服务程序,追求速度那最好是直接操作,但是主程序的话也无所谓吧。