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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑   j! Q) k: P" q0 V  `3 }! E$ V' U5 O

& L- u( w4 t9 P( X拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
; k, c6 W: G' p( e* i" e* x# `看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:, Z0 D, ^: r0 _" J  C- ~; I0 P% W0 n
F01.png g01.png
" B6 C* g" T9 H4 A+ _3 Y" ^猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
0 C& ]: i2 y4 S" r1 ~
6 h+ e5 O& m5 k% F2 g  Y1 @1.寄存器) j' ?& t" W" }4 u: o2 V
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系列上面则是所有的寄存器都有。
7 ?6 ^- ~! O; `" \6 H! h/ Z1 Z* A+ s" w1 ], @
! x) h* u) _4 c* \* o
* [1 V6 Z; V) d' v- E) ]: B0 q# i
2.特征
: _- d  T# m2 a% G1 N1 P这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。2 f7 }, L" x6 G- t8 b3 j

' w  S  l5 r) b! ?3 h; ]- U3.功能$ n+ {* G7 M. _
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
; r# R# H8 h- K) C2 E5 A$ F# a这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。
6 Q9 y; i) S! e' M% q  r! a* R 2019-01-11_175440.png
9 {, a: S" S, j2 d1 o% o( l, G1 u& f# g& U! k2 @
最后是简单的测试代码:7 ^0 R$ R& d6 s; Q3 y3 z  B
  1. int main(void)/ M3 G9 V% o, [' }6 c
  2. {
    % x$ |1 Q0 d+ p# H6 e- }; {7 ?: m
  3.   HAL_Init();2 q! s! s/ r4 R7 H4 B) Q3 i
  4.   SystemClock_Config();! m+ S4 X, h' ?
  5.   LED4_GPIO_CLK_ENABLE();% M5 C! h9 n1 b+ e
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;9 f0 M. w- Z' h: z2 C8 {5 h# ]" |; S7 t
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;
    1 p# X& h- E6 q5 l) F( {7 @) ~: N- ]
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    * H% G5 H* F" q5 X* Y  Y- {
  9.   GPIO_InitStruct.Pin = LED4_PIN;) @+ U2 a, m# ^, g4 k
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);
    : M* ]  n! p; _6 z& b) v0 r. F/ C
  11.   while (1)* u: T& J/ {% ^; [: j
  12.   {
    - Z- U" L, u, t' c0 M, W: q1 f
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);
    5 T' n4 P! `; o: a+ u5 \
  14.     HAL_Delay(500);. `2 h; q% g) ?$ D
  15.   }1 s6 W1 I) X$ I8 ^& A& s/ Z
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。' X) w1 N  J6 b; e" E

2 u* D: g3 f8 g* C" [
收藏 评论1 发布时间:2019-1-11 18:10

举报

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