一、GPIO配置
(0)前言
我对GPIO的研究也才仅仅达到了基本会用的程度,所以如有问题,请指出。
(一)配置流程
(二)配置函数说明
1.输入部分
函数
- 允许GPIO时钟:PRCMPeripheralClkEnable()
- 配置GPIO引脚:PINTypeGPIO()
-
配置GPIO方向:GPIODirModeSet()
此部分内容由于可以直接用Pin Mux Tool软件生成,所以不细说,直接上图。
注:我测试了一下,我这个板子的P55不能用来输出GPIO信号,可能被其他地方占用了,所以在选择之前,一定要避免冲突。
2.输出部分
函数
- 写GPIO引脚:GPIOPinWrite()
- 读GPIO引脚:GPIOPINWrite()
函数参数说明
两者的参数格式一样。都是**(GPIO端口基地址,GPIO引脚位权,GPIO引脚值)
**
看郭书军老师的《ARM Cortex-M4+WI-FI MCU应用指南 CC3200 IAR基础篇》,知道这部分,其实可以用上层函数 GPIO_IF_GetPortNPin()和GPIO_IF_Set()输出,此时 只需要输入的参数仅有:引脚名称 就可以输出了,可是由于我C语言基础不好以及IAR基础不好,其中有个错误没有搞定,也赶时间接着向下面做,就在会用的时候结束了。
而现在我们需要输入的参数就比较多了:GPIO端口基地址,GPIO引脚位权,GPIO引脚值
分享我制作的一个GPIO引脚图
注:跟Pin Mux Tool软件上对照,发现有些不对照,所以有点不建议你参考。
以及书上的GPIO引脚的扫描图
说了这么多废话,可能说的并不清楚。下面用简洁的语言来提炼一下如何使用。
简而言之的说
- 你要清楚你要用的是哪个引脚,这个引脚不要在其他地方有使用的冲突,这个引脚的GPIO是第几个,它是哪一组的GPIO(一共也就四组,图都给你了,)
-
你需要修改的参数绝大部分都可以通过Pin Mux Tool 软件,进行输入。除了 写GPIO引脚(GPIOPinWrite)和读GPIO引脚(GPIOPinRead)它的三个参数分别是:GPIO端口基地址、GPIO引脚位权、GPIO引脚值。
端口基地址的取值范围
GPIOA0_BASE,
GPIOA1_BASE,
GPIOA2_BASE,
GPIOA3_BASE,
GPIOA4_BASE //其实我不理解怎么会有这个
GPIO引脚位权的取值范围(当然,你也可以直接输它对应的值)
//此部分内容在 gpio.h 中
#define GPIO_PIN_0 0x00000001 // GPIO pin 0
#define GPIO_PIN_1 0x00000002 // GPIO pin 1
#define GPIO_PIN_2 0x00000004 // GPIO pin 2
#define GPIO_PIN_3 0x00000008 // GPIO pin 3
#define GPIO_PIN_4 0x00000010 // GPIO pin 4
#define GPIO_PIN_5 0x00000020 // GPIO pin 5
#define GPIO_PIN_6 0x00000040 // GPIO pin 6
#define GPIO_PIN_7 0x00000080 // GPIO pin 7
GPIO引脚值如果输出的是0,那就是填0了,如果输出那一位的值,那就是复制上面的 GPIO引脚位权的取值范围。
对了,忘记说了,我这里并没有涉及到 引脚的输出强度,这个我试了一般情况下,可以不用写,函数是PINConfigSet()。
学习参考资料:
第一章 学习CC3200 GPIO输出 - CSDN博客