天天看点

CC3200学习之IO口配置一、GPIO配置

一、GPIO配置

(0)前言

我对GPIO的研究也才仅仅达到了基本会用的程度,所以如有问题,请指出。

(一)配置流程

CC3200学习之IO口配置一、GPIO配置

(二)配置函数说明

1.输入部分

函数

  • 允许GPIO时钟:PRCMPeripheralClkEnable()
  • 配置GPIO引脚:PINTypeGPIO()
  • 配置GPIO方向:GPIODirModeSet()

    此部分内容由于可以直接用Pin Mux Tool软件生成,所以不细说,直接上图。

CC3200学习之IO口配置一、GPIO配置

注:我测试了一下,我这个板子的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引脚图

CC3200学习之IO口配置一、GPIO配置

注:跟Pin Mux Tool软件上对照,发现有些不对照,所以有点不建议你参考。

以及书上的GPIO引脚的扫描图

CC3200学习之IO口配置一、GPIO配置

说了这么多废话,可能说的并不清楚。下面用简洁的语言来提炼一下如何使用。

简而言之的说

  1. 你要清楚你要用的是哪个引脚,这个引脚不要在其他地方有使用的冲突,这个引脚的GPIO是第几个,它是哪一组的GPIO(一共也就四组,图都给你了,)
  2. 你需要修改的参数绝大部分都可以通过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博客