你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑
8 K* r4 K2 O/ j% V8 V9 s* v$ J! X  [+ r4 _
拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port5 p# K8 R1 c" _$ X8 F
看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
2 @% l- Z3 l, }$ x' j F01.png g01.png
3 I; ^1 f! F0 ~, L5 ?8 D猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
5 ?' s$ b. U/ |' R
+ h( m7 J% N4 V, w1.寄存器3 e. N+ c3 ?1 l4 Z
F、G系列GPIO的四个基本配置寄存器GPIOx_MODER,GPIOx_OTYPER, GPIOx_OSPEEDR and GPIOx_PUPDR 是少不了的,两个数据寄存器GPIOx_IDR and GPIOx_ODR同样也是不可或缺的,最后一个就是Bit set/reset 寄存器(GPIOx_BSRR)。这是相同点,而且通常我们使用GPIO寄存器用的最多的也就是这些。那么不同点呢?首先是锁存寄存器GPIOx_LCKR,F0系列上,只有Port A和Port B有,而在G0系列上面则是所有的寄存器都有。& Z* V) f3 V+ p

8 d$ ^& G6 c* _, W; m% M+ M1 Q% b
* [! f3 R) G& I  S0 N- R, A- w& M- f; P
2.特征
" P' X, w/ f) Q. P这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。7 }. h4 g4 @) s+ O+ Q* l

  {# L- X8 Z) u3 V- d5 H3.功能: `2 j3 a2 p9 J
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support0 q1 z: R  {* F0 [, x
这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。
  q8 G- R8 R) c( y5 [ 2019-01-11_175440.png
: O/ V( e' M) c6 _( C& S  Y  o2 v# O1 l
最后是简单的测试代码:
% ]. g1 m$ o4 y" M6 ~
  1. int main(void)3 \$ N( q; l% u  X
  2. {
    8 f5 f. k6 w# |6 _, Z, n' q
  3.   HAL_Init();% N) i! s8 f0 I2 [5 W: y: J$ Q
  4.   SystemClock_Config();
    - k5 R6 I7 G! j& L/ o0 `  X
  5.   LED4_GPIO_CLK_ENABLE();) V4 i  _- _, G, G+ [8 Z4 D
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;& @9 j" \8 I8 U  i
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;
    $ L8 m  M' J: b7 a. Q' G+ I: _
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    5 s+ @& o! Z& v. _% l1 d2 E
  9.   GPIO_InitStruct.Pin = LED4_PIN;
    + x) e7 J$ O! U+ T. n
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);* l# y  a9 q6 F6 }) g
  11.   while (1)( f8 Q3 J1 _. ]  C: W" Y; P7 L1 \
  12.   {
    . `2 ^" V) E1 h# C, W% U0 t3 Y
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);1 K( p# P  N. t( R1 ^, D/ d
  14.     HAL_Delay(500);8 B( f! E% }. q. o/ |
  15.   }
    9 R4 {9 l+ ~+ m. w, c
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。6 Q2 ~$ D7 e- O
" E1 h# K) p+ |: P2 H# e
收藏 评论1 发布时间:2019-1-11 18:10

举报

1个回答
zhdzhd 回答时间:2019-1-12 21:27:43
支持
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版