找回密码
 注册
关于网站域名变更的通知
查看: 143|回复: 0
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-2 15:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
CC3200AI 实验教程
——疯壳·开发板系列
GPIO

, U* z( u% c2 ]% ~/ K3 o5 E/ ^& o8 \: r- o3 \  ]: ^

' e' v* s# s3 |( |' O) b9 x# T$ j6 t' U) J

7 r3 E$ ?/ A0 c- y' ]; x: n  N    GPIO全称General Purpose Input Output即通用的输入输出,是所有控制器里必备的资源,CC3200的所有数字引脚和部分模拟引脚均可作为通用的输入输出引脚(GPIO)使用,CC3200把GPIO分为三个组,分别是GPIOA0、GPIOA1、GPIOA2、GPIOA3,每一组GPIO有8个引脚,引脚分配如表1.0.1所示:8 H1 A$ H* L) ~) m$ ^# T6 f
    表1.0 .1CC3200引脚分配表 7 Z1 \) ~& @5 ~- ]  G
/ F/ b& j+ ]' f, B8 v) ^, m
   
; g" l7 q4 e! o! v' S, F8 ]    表16 U/ ?* `) ]2 ]8 ^
    根据功能引脚配置的不同,CC3200最多可以有27个GPIO,且所有的GPIO引脚均具有中断功能,触发的方式支持电平触发和边沿触发(上升沿和下降沿),不仅如此,所有的GPIO都可以用于触发DMA、可作为唤醒源,GPIO引脚可编程:可配置为内部10uA上拉或下拉,驱动能力可调节为:2mA、4mA、6mA、8mA、10mA、12mA、14mA,同样也支持开漏模式。
( Z9 J# X+ x: L; d/ |* \% e    对GPIO进行操作时,主要需要了解两大寄存器:GPIODATA 寄存器、GPIODIR寄存器。
) C( x/ j7 l2 P5 q2 W, ~7 C    GPIODATA寄存器是数据寄存器。在软件控制模式下,如果对应的引脚通过+ m2 o2 C% A1 H2 O; _
    GPIODIR寄存器配置为输出模式,这写到GPIODATA 寄存器中的值会被传到对应引脚输出。GPIODATA 寄存器有256个别名地址,偏移值为0x000到0x3ff。一个不同地址别名可以用来直接读/写任何8个信号位的组合。这个特性可以避免读-改-写和软件读的位掩码的时间消耗。# E, ], ?3 c8 }! j' {# d
    在该方案中,为了写GPIODATA寄存器,掩码中的对应位对应于总线中[9..2]4 h5 r' W! e- f0 [
    位必须被置位。否则在进行写操作时,对应位的值不会被改变。同样,进行读操作时,也是对应总线中的[9..2],在读取对应位时,也必须置位,否则读取为 0。' v- ]( D% C  Y
    如果引脚配置为输出模式,则读取GPIODATA寄存器返回最后一次写入的值;如果配置为输入模式则返回对应引脚的值。所有位都可以通过复位清零。4 Y% U/ Q5 Z4 p' Y: d4 `2 Q
    如图1.0.1所示为GPIODATA寄存器。6 Q8 L' K; G" D/ j
8 N: j# D# i; X! a/ C* b
   
: J) ]6 t1 ?/ Z) Q2 ^    图1.0.1 GPIODATA寄存器, s  d2 s3 W" v* j3 O* {* \
    GPIODIR 寄存器是数据方向寄存器。在 GPIODIR 寄存器中设置一位将对应的引脚配置为输出;清除一位对应的引脚配置为输入。复位时多有位都清零,也就是说所有的 GPIO 引脚默认是输入。如图1.0.2所示为GPIODIR寄存器。% R- p. H* Q0 c; g% Y4 `2 ^
$ z) l4 B& w7 T, c& m& N% o) V
   
, u7 C& F& k" V! R" O: P- X    图1.0.2 GPIODIR寄存器7 s2 }5 s3 B. ^, T) ^
    打开配套的代码例程,打开GPIO文件夹下的IAR工程,如图1.0.3所示为主函数。
2 K# r7 k5 X/ e5 h, Y: D# {- v1 y+ M3 k7 _' l( R- f

$ b6 e  g; J% @+ G+ S    图1.0.3 GPIO的主函数. m- p4 g* r" p9 l
    1.1Ti Pin Mux Tool工具4 f: C, w! J2 ]2 `
    PinMuxconfig()函数可由TI Pin Mux Tool工具生成,打开TI Pin Mux Tool工具,如图1.0.4所示,第一步,在Device内找到CC3200,第二步点击“Start”。
: w! P, ^$ g4 y. L* T) G4 f2 c1 f) q/ l& ?, k- m1 w6 J; O% t" E

( x' P" x  G" u5 l2 F* K    图1.0.4 TI Pin Mux Tool: J6 r6 [( x! y3 z# `; i, t
    如图1.0.5所示,第一步点击“GPIO”处的添加,默认是选取全部GPIO;第二步,把“GPIO Signals”前面的勾去掉,去除全选;第三步,选择GPIO_9、GPIO_10、GPIO_11(对应开发板上的三颗LED);驱动LED需要GPIO输出,第四步,把三个GPIO的“Output”勾选上。4 o8 \7 J& Z2 T2 p* L3 R3 @$ K
7 q7 p& m; f' J. c+ n, }
   
& y3 p0 z( _0 G" {1 \# `- M2 x    图1.0.5 TI Pin Mux Tool配置步骤
' f* h2 ~4 {% A' P) [+ t    最终完成的如图1.0.6所示。在最右边的Generated Files处点击,把“pin_mux_config.c”和“pin_mux_config.h”下载下来添加到工程里即可。
# G, \# t* {; d6 b6 S
* b2 a0 L! l" e, U2 i     7 S' T1 D( i  o/ H) m- B7 c4 r$ {
    图1.0.6 配置完成示意图5 r3 g: e9 W* i' B! e( @+ G
    生成好的端口配置函数如图1.0.7所示,该函数主要是对LED对应的端口开启时钟、设置方向等。
6 y1 @4 H% s2 z0 y9 v9 q) r% o; T) [
   
. F1 f' K8 `6 w  ~$ k0 ?    图1.0.7 端口配置函数
+ G' w% e7 F7 r1 T1 E, W    配置好后,通过GPIO_IF_LedConfigure()函数把LED端口进行处理,即把各个LED的端口所对应的端口组,以及属于该组中的第几个IO提取出来。如图1.0.8所示。' D4 ~# P/ n5 h4 t  U5 \. m# [
; i/ b' i. n) ]" m0 K1 F
   , g& ^( h/ T( o! D& }/ h' S
    图1.0.8 端口处理# u9 ^/ r! K$ D% o) l
    完成上面两步后,先关闭所有的LED,然后在一个死循环内执行“流水”部分,即按顺序以一定的时间间隔开闭LED,如图1.0.9为“流水”效果实现代码。- [( t9 l! T& j! z
! b9 C5 w! p4 e
   
# Y2 O  c& e' r, R6 |8 I  J' U    图1.0.9“流水效果”实现代码" ~& }  h- r  |! F, i7 X
    1.2代码下载
6 p  L0 _# r2 U( E. V3 y    编译程序,生成了相对应的bin文件,下载前,先插上仿真调试器Ti Stellaris,在把旁边的拨码开关的“RX”和“TX”拨到“ON”,把启动方式拨码选择为FLASH启动,即把SOP2拨到“ON”。; j, G( o8 m# H0 g2 K7 W
    打开下载工具Uniflash,点击快速启动向导中的“新目标配置”,在弹出的配置对话框中选择CC3x Serial(UART) InteRFace,然后点击OK。如图1.1.0所示。
4 J: n9 F+ b# H5 @+ C+ U- m& l7 E7 z! O6 p
   
7 q9 m9 E$ i: S0 r( R" ^- o1 X    图1.1.0选择下载的芯片以及方式9 L7 j! L1 c* c  X* h, l/ P' }
    然后在COM Port中输入板子连接的串口号(根据自己的电脑来进行选择),
  g5 d4 ]6 `/ d3 V+ {3 N6 v. v! s) z    如图1.1.1所示。; P6 d8 `. i  T* X3 G
( F- _$ H. \1 s, s& t, d
  
( [; I" J: T$ E) Q+ w    图1.1.1 串口号选择
3 o1 j9 T- t8 G. v1 e- Y3 {    初次使用板子时,先烧写Sevcie Pack,否则程序可能无法运行,如图1.1.2所示点击“Sevice Pack Programming”,选择之前安装的Sevicepack安装文件夹目录下的bin文件即可,如果之前已经向CC3200烧写过Sevice Pack的这一步可以忽略。
' h6 p" s& K: z# A+ G- u+ {; M4 u' Q. E1 ^
   ' Z! o3 y9 y# X
    图1.1.2 SevicePcak的烧写7 J* z" d$ E- U3 W2 j
    在左侧点击/sys/mcuimg.bin,然后在右侧 URL 中选择刚编译生成的bin文件,然后选中下方的Erase和Update。如图1.1.3所示。2 r1 v( N3 b/ z5 U' U- C7 G

6 W/ Q: u. j  ^0 v! k- {     
% i6 c* Y: h/ z. j; N. U    图1.1.3 选择下载的目标% f' y7 F  e& |- g9 r/ d7 Z
    然后点击“CC31xx/CC32xx Flash Setup and Control”,点击 Program 进行下载,如图1.1.4所示。
$ n1 ?% d- A* [1 a. g* Q9 y( A! X( o( S
   
  p3 R$ [0 v1 g! b9 q1 A    图1.1.4下载bin文件
1 q8 [1 C# J9 h# ^4 ]    根据软件下方的提示,按下复位按键就可以看到下载的相关信息,如图1.1.5所示。
$ k* z) Z  l" h) U. w$ q3 l2 G4 w/ D: l# S0 y3 b7 ~0 U9 a
   
& b* U, [  h9 h% l5 t4 b: W    图1.1.5 bin文件下载中
8 _0 p: j9 l7 M3 s0 C    下载完成如图1.1.6所示。2 Z2 S9 T% A# M8 l* H/ g& d7 N* m
# b9 P6 f/ x& ]# x& F6 Y
     q' F; {9 X9 b, v! e- E
    图1.1.6 下载完成; g: P2 Z& w2 j* j/ t  R# w5 N- x
    1.3实验现象% k. J. z# m& K$ _+ F  S
    把下载前的改变的拨码开关拨回原处。再把拨码开关“D5”、“D6”和“D7”拨到“ON”,使IO口与LED建立连接关系,按下复位开关,可以看到三颗LED呈“流水”状闪烁,如图1.1.7所示为该实验现象。
) z4 B% j6 s; w+ k0 p
, p6 ~( c* F- K+ t    
3 C" G( y! m% r* B* R    图1.1.7 实验现象1 G6 Y5 K! b0 P) ?0 \2 {
* M' z3 A& K) m7 G1 D9 b8 w. z

4 ]2 v! E, t5 F# g8 v9 F) T' ?( A! K, K' T2 c5 c- h# D. O# |
2 h$ v% e5 u8 V- y
文件下载请点击: 【2】GPIO .pdf (1000.6 KB, 下载次数: 0)
# t4 F$ ^9 x) ?+ p: Y' C
7 ^9 g7 R' e" {5 w* `# S7 s# c7 M5 p- p# ]

, H' p" a) q0 |- k- i$ G1 R& |
, {" O* @; }( q: Z+ s3 p
, r4 @' w7 c9 s# B+ N
0 D+ I' c1 G, V, y$ ~" k2 ^( n) r4 {  L8 m1 p* @* ]1 K& O; k  R5 {
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-22 02:17 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表