TIM4配置
TIM4->CNTR=0; //计数器值
TIM4->ARR = 0xFA; //自动重装载寄存器 250,产生125次定时1s
TIM4->PSCR =0x07; //分频系数为128
TIM4->EGR =0x01; //手动产生一个更新事件//用于PSC生效 注意,是手动更新(此项必须有)
TIM4->IER = 0x01; //更新事件中断使能
TIM4->CR1 = 0x01; //使能计时器,TIM4_CR0停止计时器
TIM4中断函数:
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
{
TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
}
# 其它系列的写法大致相同,注意区分符号例如:
TIM4_CNTR=0; //初始化计数器值
TIM4_ARR=0xFA; //自动重装寄存器值250,250us
TIM4_PSCR_PSC=0x03; //预分频系数为8,8M/8=1M->1us
TIM4_EGR_UG=1; //手动产生一个更新事件,立即更新预分频器
TIM4_IER_UIE=1; //更新中断使能
TIM4_CR1_CEN=1;//使能计数器
注意:配置完成后开启全局中断
rim(); //或者 enableInterrupts()
其在宏定义如下:
#define enableInterrupts() __enable_interrupt() /* enable interrupts */
#define rim() __enable_interrupt() /* enable interrupts */
如果都操作完了还存在问题:
请排查是在stm8s.h中定义芯片;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c862d67b5b3f3f976ac214668186abae.png)
或者在options–>C/C++Complier -->Preprocessor -->Defined symbols中配置
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d89f95993f152c44ca07280d9435722c.png)