STM32 C编程入门记录 Timers(上)

介绍Tim的用途:

在stm32里常常需要用Timer来决定一件事项的频率。最简单的例子,如果想让一个LED灯已一个频率闪烁,就要用Tim来确认频率。那接下来就要介绍一下如何建立一个Tim的计时器。

过程介绍

1.选择计时器

首先在I/Opin中,我们暂时只能设置输入与输出。alternative和analog mode还没有涉及,参照下图。
这是stm32 reference book上的内容
首先我们要用一个general-purpose的pin连接到Tim,所以这里就不再是输入与输出的结果,而是alternate function mode。

举例

首先打开 I/O port C clock才能给PC中的pin赋值。
假设我们要设置PC8为Tim3的启动pin

RCC->AHBENR |= RCC_AHBENR_GPIOCEN;//1
GPIOC->MODER &= (3 <<(2 8));//2
GPIOC->MODER |= 2 <<(2 * 8);//3
GPIOC->AFR[1] &= (15<<(48));//4

1.打开所有GPIOC的pin.
2.因为下面要给PC8赋值,所以要先清空原来的数值,否则原来数字或等于10结果可能不为10.ex.10|11=11~=10.
3.在上图表格中在moder中一个pin占据两位,moder8在第16位,所以向右移8*2位并赋予二进制10也就是2
因为不能改变其他位数上的值所以用“|=”“或”来赋值
4.这一步要给把pc8绑定到tim3.
需要查datasheet。
在这里插入图片描述
因为pc8对应的alternate function 只有一个就不需要再次查表来,再查reference book 中AFR的部分。
在这里插入图片描述
因为PC8中的8大于7,所以它属于AFRH组。又因为PC8只有一个alternate function。
所以只有赋予0000就行,也就是~(1111)就行了。
至此就把PC8和Tim3channel3关联了。
接下来就是如何选择Tim3的一些事项,下篇再讲。