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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑
9 t; N& j* X. x
! t5 r$ z4 @3 M; K% @拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port1 R5 C# o" k( Y% W
看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
! m9 D1 H( l! v1 o' v7 Z F01.png g01.png 3 D! v  D- h' E1 }
猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。" F( q! z2 V8 d
; `; V2 X& S8 m" R0 w- V3 l% f+ `
1.寄存器; g9 [: ~3 D6 y$ w' f5 U
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系列上面则是所有的寄存器都有。- a) F  d* {: h9 E6 M7 ~
5 S1 a7 @$ |& F1 T' a: `

  u  r5 v) v; l* x( Z' K" @, c$ G
  a3 l  z; _, P2.特征; @8 r- ~" S' S: Y9 F2 [. e6 @
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
3 Q0 |" o, ^7 @4 N  Y% L
+ f- y( D5 e4 w2 |4 Y. A) T* W" i3.功能- i/ w  _0 j* w3 n  }8 c6 T
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
: K& i3 {* u& b) [这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。8 t$ R# i0 w' t* q4 k6 W  ?
2019-01-11_175440.png
# R% l, R, p# v" f* R/ X8 I; L4 s# b0 t* d+ ~( R; z/ c
最后是简单的测试代码:. n" i9 @8 q8 g, N# P
  1. int main(void)
    9 {' Y1 C# b. w- R0 \6 t
  2. {) a% [4 I: D( Q  z. t
  3.   HAL_Init();: e2 a$ l( g6 r* m7 y7 O% w
  4.   SystemClock_Config();1 Q" H1 ?5 ^% h% c
  5.   LED4_GPIO_CLK_ENABLE();
    . H9 L0 m1 _; q% P/ ]
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    4 a; a! n" E. j9 }/ j9 l
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;, w& D4 t" x) E( g% Q, S$ Q+ M
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;* i* J. |2 u  z' R& H* a* V3 B
  9.   GPIO_InitStruct.Pin = LED4_PIN;
    ( H' V2 J- U/ _- X. P' l* m  O
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);5 T% J2 `3 }& s6 L+ ^- I
  11.   while (1)$ O' r- E8 s9 D" {
  12.   {
    9 Q( e3 \# R1 d! C" S, K3 E* y
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);& S! H% [2 F" ~3 A7 G
  14.     HAL_Delay(500);7 e7 t$ E/ k8 O; @0 B  d7 C, m
  15.   }" K* {3 f: Z& v) H
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。
2 v7 w8 ?7 e. _6 ~5 K5 Z9 L
( n4 g7 Z9 Z1 I  a+ b3 A5 e
收藏 评论1 发布时间:2019-1-11 18:10

举报

1个回答
zhdzhd 回答时间:2019-1-12 21:27:43
支持

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版