你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的计数器例程

[复制链接]
STMCU小助手 发布时间:2023-2-6 15:08
因为用stm32f103c8 因此想到外部时钟触发模式
! @- n) i% @. W' c4 C- t7 I  RCC_ClocksTypeDef RCC_ClockFreq;
9 V2 n4 A+ b- R  @8 U! \: p
# I( L; d: ~; j. g" q/ B( F1 Q4 M5 Q
SystemInit();//源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC的配置.
: n: Z3 N# K$ e6 ]* o. j  ^& @RCC_GetClocksFreq(&RCC_ClockFreq);  Q! Z( `, R# ~8 c& i5 O* M
8 ^! ^) j& Y% z
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);+ O8 g; e3 a8 x1 ?, J5 b
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
# Y' [3 T8 M$ S8 ?6 mRCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);6 x* x' Z7 I1 c8 z, z7 `0 s2 E
void main(void): Z/ L# @  J6 M8 F
{. E, y8 j( r2 [( ^' L
u16COUN1=0;
! v2 i6 d  W& |  n0 x. Xu16 COUN2=0;# i7 N* X* S& h( ~: [8 E

% y- v# \! [+ J; D9 Cwhile(1)
  W4 w, C+ T. q( {{undefined
6 R5 l* \% n! ?. d: [$ W# Q% a   COUN1=TIM1->CNT;( b1 |  Z  w' k* _7 _
}
1 y0 I, m* _: Q( }}
# J1 U+ _" T/ L3 k, S5 n- M; r: E/ d0 b' b
GPIO_InitTypeDefGPIO_InitStructure;
5 ~4 _$ R9 A% u- t/ I9 f4 y2 I/*PA0,PA12-> 左右脉冲输入 */
8 D: n' `  Q9 L$ o* h% K6 ?6 cGPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;! }7 l( y. S+ j& {/ p0 u" _
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //
  ]0 ~4 q! v/ {/ S. M! ZGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度0 [0 |* A* r; Y% c3 G
GPIO_Init(GPIOA, &GPIO_InitStructure);
; \+ X" K7 V- D4 |8 ]# n
/ o6 H4 o0 |0 F; k5 Y& z9 @8 E  U
voidTIM1_Configuration(void) //只用一个外部脉冲端口
0 h* C8 M4 l8 z9 V{ / A7 `( N9 G! S$ o1 m

9 l9 q1 K$ i) u8 A3 r2 q2 x
TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;
/ z" x! H+ r8 m$ l. w5 ]   //配置TIMER1作为计数器4 H5 R+ g7 m/ P# \+ j
   TIM_DeInit(TIM1);# ?1 W! M' C5 Z: E2 }6 r
  TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
/ ?" ~8 t8 x9 U: N- e' V  ]( @7 kTIM_TimeBaseStructure.TIM_Prescaler = 0x00;9 t! m% @; r' |' a- V
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;2 M3 i: R6 B" l7 M
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;) f2 c9 X) h$ R; a* b( n$ N% b
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); // Time base configuration
6 Y+ a7 C) Y( KTIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted, 0);
5 n: E9 G3 p: V; }, ~TIM_SetCounter(TIM1,0);
5 [% P. {) O0 b, @" R( kTIM_Cmd(TIM1, ENABLE);
! y. L2 D7 `6 A8 B2 j% V}
" \, _. q6 R- Z4 v' h, o, g! h* g7 v! g0 I

& p) G- m. w9 \! H/ M: C" N- S程序解释:" K" Y3 H/ f. E1 r: z4 L) i5 v
注意:2 O" k# B0 x1 r; ^$ l9 r
第一步:(1)stm32f103c8只有TIM1_ETR(PA12,Pin33) $ c# J) X0 ~& @% l, V8 t
              (2)外部时钟输入与中断无关
3 W# s: P' P+ }6 z1 L第二步:设置RCC第三步,设置定时器模式
* X: D% n( e* U$ E+ i6 D: r" }第三步,设置定时器模式' e9 I$ g- j2 q) c
第四步,可以在主函数中读取计数器的值,其它的应用,就看具体的情况了。& t/ v- j  ~" ]0 ?. m
————————————————
; e8 P* b' y( F: v- `版权声明:赵福帅
5 m/ ^/ C' x) ^% ^; S; ]9 O8 I/ _9 W6 B4 A  v- W6 p7 n
赞 收藏 评论0 发布时间:2023-2-6 15:08

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版