OpenEdv-开源电子网

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

关于STM32定时器输入捕获实验的问题

[复制链接]

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-6-3
在线时间
8 小时
发表于 2015-6-18 17:58:14 | 显示全部楼层 |阅读模式
我看的教材是《院子教你玩stm32库函数版》,配套的是战舰开发板。问题是这样,书中176也下面写到”CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=0)才是可写的“,但是在库函数中的代码是这样的(见截图)。我想问的是这里在设置CC1S位的时候没有先设置通道关闭(也就是设置CC1E为为0),是不是寄存器的位默认就是0?想听听打击啊都是怎么理解的,谢谢分享!
QQ截图20150618180025.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-6-3
在线时间
8 小时
 楼主| 发表于 2015-6-18 17:59:38 | 显示全部楼层
发现错别字了,sorry。。。
回复 支持 反对

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-6-3
在线时间
8 小时
 楼主| 发表于 2015-6-18 18:16:27 | 显示全部楼层
void TIM5_Cap_Init(u16 arr,u16 psc)
{  
RCC->APB1ENR|=1<<3;   
RCC->APB2ENR|=1<<2;    
 
GPIOA->CRL&=0XFFFFFFF0;
GPIOA->CRL|=0X00000008;
GPIOA->ODR|=0<<0;
  
  TIM5->ARR=arr;  
TIM5->SC=psc;  

TIM5->CCMR1|=1<<0; //CC1S=01 
  TIM5->CCMR1|=0<<4;  //IC1F=0000 
  TIM5->CCMR1|=0<<10;         //IC2PS=00 

TIM5->CCER|=0<<1;  //CC1P=0
TIM5->CCER|=1<<0;  //CC1E=1 

TIM5->DIER|=1<<1;   
TIM5->DIER|=1<<0;   
TIM5->CR1|=0x01;    
MY_NVIC_Init(2,0,TIM5_IRQn,2);   
}
看了一下寄存器版本的代码,设置TIM5->CCMR1的CC1S位时也没有先关闭通道,看来CC1E的值缺省是0的。
回复 支持 反对

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-6-18 22:06:00 | 显示全部楼层
回复【3楼】不说如果:
---------------------------------
复位后   CC1E的值为0
回复 支持 反对

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-6-3
在线时间
8 小时
 楼主| 发表于 2015-6-19 08:24:46 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
嗯,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 04:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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