查看: 1544|回复: 0

[资料] 【开发教程4】疯壳·AI语音人脸识别-GPIO

[复制链接]
  • TA的每日心情
    开心
    2022-4-17 15:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2022-7-16 15:13:41 | 显示全部楼层 |阅读模式
    分享到:
    CC3200AI 实验教程
    ——疯壳·开发板系列
    GPIO





        GPIO全称General Purpose Input Output即通用的输入输出,是所有控制器里必备的资源,CC3200的所有数字引脚和部分模拟引脚均可作为通用的输入输出引脚(GPIO)使用,CC3200把GPIO分为三个组,分别是GPIOA0、GPIOA1、GPIOA2、GPIOA3,每一组GPIO有8个引脚,引脚分配如表1.0.1所示:
        表1.0 .1CC3200引脚分配表

    表1.png   
        表1
        根据功能引脚配置的不同,CC3200最多可以有27个GPIO,且所有的GPIO引脚均具有中断功能,触发的方式支持电平触发和边沿触发(上升沿和下降沿),不仅如此,所有的GPIO都可以用于触发DMA、可作为唤醒源,GPIO引脚可编程:可配置为内部10uA上拉或下拉,驱动能力可调节为:2mA、4mA、6mA、8mA、10mA、12mA、14mA,同样也支持开漏模式。
        对GPIO进行操作时,主要需要了解两大寄存器:GPIODATA 寄存器、GPIODIR寄存器。
        GPIODATA寄存器是数据寄存器。在软件控制模式下,如果对应的引脚通过
        GPIODIR寄存器配置为输出模式,这写到GPIODATA 寄存器中的值会被传到对应引脚输出。GPIODATA 寄存器有256个别名地址,偏移值为0x000到0x3ff。一个不同地址别名可以用来直接读/写任何8个信号位的组合。这个特性可以避免读-改-写和软件读的位掩码的时间消耗。
        在该方案中,为了写GPIODATA寄存器,掩码中的对应位对应于总线中[9..2]
        位必须被置位。否则在进行写操作时,对应位的值不会被改变。同样,进行读操作时,也是对应总线中的[9..2],在读取对应位时,也必须置位,否则读取为 0。
        如果引脚配置为输出模式,则读取GPIODATA寄存器返回最后一次写入的值;如果配置为输入模式则返回对应引脚的值。所有位都可以通过复位清零。
        如图1.0.1所示为GPIODATA寄存器。

    1.png    
        图1.0.1 GPIODATA寄存器
        GPIODIR 寄存器是数据方向寄存器。在 GPIODIR 寄存器中设置一位将对应的引脚配置为输出;清除一位对应的引脚配置为输入。复位时多有位都清零,也就是说所有的 GPIO 引脚默认是输入。如图1.0.2所示为GPIODIR寄存器。

    2.png    
        图1.0.2 GPIODIR寄存器
        打开配套的代码例程,打开GPIO文件夹下的IAR工程,如图1.0.3所示为主函数。

    3.png
        图1.0.3 GPIO的主函数
        1.1Ti Pin Mux Tool工具
        PinMuxconfig()函数可由TI Pin Mux Tool工具生成,打开TI Pin Mux Tool工具,如图1.0.4所示,第一步,在Device内找到CC3200,第二步点击“Start”。

    4.png    
        图1.0.4 TI Pin Mux Tool
        如图1.0.5所示,第一步点击“GPIO”处的添加,默认是选取全部GPIO;第二步,把“GPIO Signals”前面的勾去掉,去除全选;第三步,选择GPIO_9、GPIO_10、GPIO_11(对应开发板上的三颗LED);驱动LED需要GPIO输出,第四步,把三个GPIO的“Output”勾选上。

    5.png    
        图1.0.5 TI Pin Mux Tool配置步骤
        最终完成的如图1.0.6所示。在最右边的Generated Files处点击,把“pin_mux_config.c”和“pin_mux_config.h”下载下来添加到工程里即可。

    6.png    
        图1.0.6 配置完成示意图
        生成好的端口配置函数如图1.0.7所示,该函数主要是对LED对应的端口开启时钟、设置方向等。

    7.png    
        图1.0.7 端口配置函数
        配置好后,通过GPIO_IF_LedConfigure()函数把LED端口进行处理,即把各个LED的端口所对应的端口组,以及属于该组中的第几个IO提取出来。如图1.0.8所示。

    8.png    
        图1.0.8 端口处理
        完成上面两步后,先关闭所有的LED,然后在一个死循环内执行“流水”部分,即按顺序以一定的时间间隔开闭LED,如图1.0.9为“流水”效果实现代码。

    9.png    
        图1.0.9“流水效果”实现代码
        1.2代码下载
        编译程序,生成了相对应的bin文件,下载前,先插上仿真调试器Ti Stellaris,在把旁边的拨码开关的“RX”和“TX”拨到“ON”,把启动方式拨码选择为FLASH启动,即把SOP2拨到“ON”。
        打开下载工具Uniflash,点击快速启动向导中的“新目标配置”,在弹出的配置对话框中选择CC3x Serial(UART) Interface,然后点击OK。如图1.1.0所示。

    10.png    
        图1.1.0选择下载的芯片以及方式
        然后在COM Port中输入板子连接的串口号(根据自己的电脑来进行选择),
        如图1.1.1所示。

    11.png    
        图1.1.1 串口号选择
        初次使用板子时,先烧写Sevcie Pack,否则程序可能无法运行,如图1.1.2所示点击“Sevice Pack Programming”,选择之前安装的Sevicepack安装文件夹目录下的bin文件即可,如果之前已经向CC3200烧写过Sevice Pack的这一步可以忽略。

    12.png    
        图1.1.2 SevicePcak的烧写
        在左侧点击/sys/mcuimg.bin,然后在右侧 URL 中选择刚编译生成的bin文件,然后选中下方的Erase和Update。如图1.1.3所示。

    13.png    
        图1.1.3 选择下载的目标
        然后点击“CC31xx/CC32xx Flash Setup and Control”,点击 Program 进行下载,如图1.1.4所示。

    14.png    
        图1.1.4下载bin文件
        根据软件下方的提示,按下复位按键就可以看到下载的相关信息,如图1.1.5所示。

    15.png    
        图1.1.5 bin文件下载中
        下载完成如图1.1.6所示。

    16.png    
        图1.1.6 下载完成
        1.3实验现象
        把下载前的改变的拨码开关拨回原处。再把拨码开关“D5”、“D6”和“D7”拨到“ON”,使IO口与LED建立连接关系,按下复位开关,可以看到三颗LED呈“流水”状闪烁,如图1.1.7所示为该实验现象。

    17.png    
        图1.1.7 实验现象



    完整配套资料:https://www.fengke.club
    对应开源套件地址:http://shop115904315.taobao.com
    文件下载请点击: 【2】GPIO .pdf (1000.6 KB, 下载次数: 0)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 05:40 , Processed in 0.136634 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.