8343|12

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32捕获寄存器的值实时在变,为什么? [复制链接]

                                 现用 STM32F103VE 将定时器TIM1 设为选择外部时钟模式1,把TIM1通道1上的信号作为计数的时钟源,然后选择通道4作为输入捕获引脚,设置为上升沿捕获,每秒捕获一次,不应该是每次捕获发生时才更新捕获寄存器CCR1吗?但是现发现捕获寄存器CCR1内的数值实时在变?
此帖出自stm32/stm8论坛

最新回复

                                   详情 回复 发表于 2011-2-21 17:51
点赞 关注
 

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 怎么没人回答呢?
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
几个问题:
1)既然TIM1是选择外部时钟模式1,又如何把TIM1通道1上的信号作为计数的时钟源?
2)如何控制每秒捕获一次?
3)在通道4做捕获操作,为什么要读捕获寄存器CCR1,而不是CCR4?
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 



1. 就是对定时器TIM1通道1进行计数,
数据手册上:外部时钟源模式1 当TIMx_SMCR寄存器的SMS=111时,此模式被选中。计数器可以在选定输入端的每个上升沿或下降沿计数。
我将TIM1的通道1设为输入端。

2 用其他定时器定时产生1s的方波,连接到定时器TIM1的通道是4上,然后将定时器TIM1通道4设置为每个上升沿都捕获。
3 寄存器是我写错了 读的是CCR4
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

5
 
1)请贴出其它寄存器的配置
2)如何把其他定时器定时产生的1s方波,连接到定时器TIM1的通道4上?
3)如何判断捕获寄存器的值在实时变化?
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 

1.我用的2.0V的固件库
void AdvanTIM_Configuration(void)
{
  TIM_ICInitTypeDef  TIM_ICInitStructure;
  
  /* Selects the TI1 as clock for TIM1: the external clock is connected to TI1 input pin,
  the rising edge is the active edge and no filter sampling is done (ICFilter = 0) */
  TIM_TIxExternalClockConfig(TIM1, TIM_TS_TI1FP1, TIM_ICPolarity_Rising, 0);

  /* TIM1 Input trigger configuration: External Trigger connected to TI1 */
  TIM_SelectInputTrigger(TIM1, TIM_TS_TI1FP1);   
  TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_External1);  
  
  
  /* TIM1 Input Capture TIM_Channel_4 Configuration */
  TIM_ICInitStructure.TIM_Channel = TIM_Channel_4;
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
  TIM_ICInitStructure.TIM_ICFilter = 7;
  
  TIM_ICInit(TIM1, &TIM_ICInitStructure);
  
  /*使能TIM1计数器*/
  TIM_Cmd(TIM1, ENABLE);
  
  /*使能TIM1 CC4中断请求*/
  TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE);
}
2.我用定时器TIM2产生周期为1秒的PWM,然后直接将其连接到定时器TIM1的通道4上,用示波器观察正常
3.我在程序里实时读取捕获寄存器CCR4,让后通过液晶显示出来,发现其值随着计数器的值改变而实时改变,而不是每秒改变一次,但是观察发现 捕获中断的确是是每秒进入一次。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 

连接:我是通过外部将两个引脚连接起来的
此帖出自stm32/stm8论坛
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

8
 
5# 版主  
连接:我是通过外部将两个引脚连接起来的
哪两个引脚?
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 

我用的是STM32103F VE100脚的
定时器TIM2的通道1 (PA15)和定时器TIM1的通道4 (PA11)
定时器TIM2的通道1 (PA15)引脚是复用的  刚开始是配置为 JTDI功能 让后延时一段 再配置为 PWM模式
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
请问你在中断中读到的捕获值正确吗?
6楼说在程序里实时读取捕获寄存器CCR4,是怎么读的?是否读错了?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 谢谢版主 问题解决了  呵呵 是我自己在显示程序中  弄错了
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 寄存器读错了
此帖出自stm32/stm8论坛
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved