OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3056|回复: 6

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

[复制链接]
bitofworld 该用户已被删除
发表于 2017-2-16 15:00:24 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2016-10-9
在线时间
31 小时
发表于 2017-2-17 08:45:31 | 显示全部楼层
我觉得你编写的程序不太正规,TIM4->EGR  = 0x01;不应该这样写,你用什么位就设置什么,不要一起设置TIM4->EGR  |= 0x01;
回复

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2016-10-9
在线时间
31 小时
发表于 2017-2-17 08:46:44 | 显示全部楼层
还有你开时钟了吗?ST 应该各外设都有门控寄存器吧。
回复

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2016-10-9
在线时间
31 小时
发表于 2017-2-17 08:51:02 | 显示全部楼层
中断服务程序也不对。应该在一个中断声明的,还有你的中断优先级别配置了吗
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2016-6-28
在线时间
17 小时
发表于 2017-3-18 16:01:41 | 显示全部楼层

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; //清除中断标志
回复

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2016-6-28
在线时间
17 小时
发表于 2017-3-18 16:02:27 | 显示全部楼层
shuchao001 发表于 2017-3-18 16:01
void main(void)
{
  CLK_CKDIVR=0X10;//4M

给你参考一下,改下时钟和计数值就可以用了
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-11-18
在线时间
16 小时
发表于 2017-3-19 16:22:35 来自手机 | 显示全部楼层
shuchao001 发表于 2017-3-18 16:01
void main(void)
{
  CLK_CKDIVR=0X10;//4M

这样单独的一个定时可以,但加入串口后两个都不行,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 00:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表