STM8S003F定时器4的寄存器写操作无效

2019-07-19 20:54发布

我觉得你编写的程序不太正规,TIM4->EGR  = 0x01;不应该这样写,你用什么位就设置什么,不要一起设置TIM4->EGR  |= 0x01;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
zoujianxun
1楼-- · 2019-07-20 01:01
还有你开时钟了吗?ST 应该各外设都有门控寄存器吧。
zoujianxun
2楼-- · 2019-07-20 02:14
 精彩回答 2  元偷偷看……
shuchao001
3楼-- · 2019-07-20 03:53

void main(void)
{
  CLK_CKDIVR=0X10;//4M
  TIM4_Init();
  TIM4_CR1 |= 0x01;
  asm("rim");
  while(1)
  {
  }
}

void TIM4_Init(void)
{
    TIM4_PSCR=0x02;//分频值,1M
    TIM4_IER=0x01;//更新中断使能
    TIM4_CNTR=250;//计数器初值,250us
    TIM4_ARR=250;//自动重装的值250us
}
#pragma vector=TIM4_OVR_UIF_vector //定义中断服务函数入口地址
__interrupt void TIM4_OVR_UIF__IRQHandler(void)//4000——1S
{
  TIM4_SR=0x00; //清除中断标志
shuchao001
4楼-- · 2019-07-20 09:39
shuchao001 发表于 2017-3-18 16:01
void main(void)
{
  CLK_CKDIVR=0X10;//4M

给你参考一下,改下时钟和计数值就可以用了
lxl113
5楼-- · 2019-07-20 11:06
 精彩回答 2  元偷偷看……

一周热门 更多>