用的固件库,调试的时候看了TIM1的寄存器配置都没错,就是不进入中断。。。。不知道是什么原因? main.c中的程序: /* Includes ------------------------------------------------------------------*/ #include "stm8s.h" #include "stm8s_it.h" #define LED_PORT (GPIOD) #define LED1_PIN (GPIO_PIN_3) #define LED2_PIN (GPIO_PIN_2) #define LED3_PIN (GPIO_PIN_0) #define BUTTON_PORT (GPIOD) #define BUTTON_PIN (GPIO_PIN_7) void GPIOInit(void) { /* Infinite loop */ GPIO_Init(LED_PORT, LED1_PIN,GPIO_MODE_OUT_PP_LOW_SLOW); } void TIM1Init(void) { TIM1_TimeBaseInit( 0x1F3F,0x10,0x01F4,0x01F4); /*PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms 计数器使能,开始计数 每记数500次产生一次中断,即500ms*/ TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); TIM1_Cmd(ENABLE); /*允许更新中断*/ } void main(void) { GPIOInit(); TIM1Init(); while(1) { } } stm8_it.c中的程序部分: INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ GPIO_WriteReverse(LED_PORT, LED1_PIN); TIM1_ClearFlag(TIM1_FLAG_UPDATE); // 清除更新中断标记 i++; } |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
TIM的时钟开启了吗?
开了啊。调试的时候看了TIM1的寄存器,该配置的都配置
就是进不了中断。
RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
enableInterrupts();
没有开启环形中断使能
回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
/* enable interrupts */
enableInterrupts();
没有开启环形中断使能
开启唤醒中断使能?
- -这个是什么
void main(void)
{
asm("sim"); // 关全局中断
GPIOInit();
TIM1Init();
asm("rim"); // 开全局中断
while(1)
{
}
}我把主函数换成这样后可以进入中断,但只能进一次额。。什么原因内?
RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
RE:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断
void TIME1_Initializes(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);
/* Configure TIM1 to generate an update event each 0.025 s */
TIM1_TimeBaseInit(127, TIM1_CounterMode_Up, 2343, 0);//25ms
TIM1_UpdateRequestConfig(TIM1_UpdateSource_Global);
/* Clear TIM1 update flag */
TIM1_ClearFlag(TIM1_FLAG_Update);
/* Enable update interrupt */
TIM1_ITConfig(TIM1_IT_Update, ENABLE);
/* Enable TIM1 */
TIM1_Cmd(ENABLE);
}
回复:IAR FORSTM8是用固件库 写的程序进不了TIM1更新中断