STM32学习100步之第二十五步——GPIO端口的控制方法

STM32单片机的特点
它不仅功能强大,而且与51单片机一个很大的不同点便是,STM32单片机有许许多多的库函数,这些库函数将功能模块化,我们只需要知道各个库函数的功能,以及怎么调用它即可,至于它内部是怎么编写、封装而成,我们并不关心,只需会用即可,使用的时候,可以查阅相关的数据手册,不需要背会,比较方便。

点灯程序的原理

这里的灯便是我们所说的发光二极管,一般来讲,我们使用共阳极接法,即将所有的发光二极管都接一个VCC电源,而所有发光二极管的阴极则接在单片机的各个端口(单片机本身输出的电流非常有限,不足以使二极管很亮,因此控制灯亮度的关键在于控制相应端口(相当于在二极管的阴极加上高低电平)的高低电平,使用共阳极接法,是使外界输入单片机电流,当然也不可以很大,防止烧坏单片机,而且当单片机输出高电平时容易受到外界干扰,造成灯亮度不稳定,这就是为什么使用共阳极的接法的原因)。

控制STM32F103的GPIO端口控制的方法

方法一:
使用 GPIO_WriteBit函数(端口号,相应端口的引脚号,Bit_RESET/Bit_SET)
若为参数Bit_RESET,则相应的引脚置0,若为Bit_SET,则相应的引脚置1。
也可以使用BitAction(0/1),(实际上是枚举函数结构)来代替,分别代表置相应的位为0/1。

方法二:
分别使用GPIO_SetBits(端口号,相应端口的引脚号)来使相应的引脚置1,GPIO_ResetBits(端口号,相应端口的引脚号)来使相应的引脚置0。

方法三:
使用GPIO_Write(端口号,0xXXXX),来给该端口号的每个引脚一次性整体置位,比如若写成0x0000,则就是给该端口的每个引脚置0。

方法四:
使用宏定义:
PXout(n)、PXin(n),分别指的是,控制X端口的n引脚输出/输入数据。X指的是A、B、C、D…,n指的是0-15。
比如,PBout(0)=0/1,则相应的端口输出0/1,这种方法最为方便,推荐使用,注意使用这种方法必须引入sys.h文件才行。

你可能感兴趣的:(STM32学习100步之第二十五步——GPIO端口的控制方法)