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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑 : f$ a7 I2 l9 F# j. G) Y! D
/ B1 t! Q! t' _# z( ^+ d0 i2 L+ ^
拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
' K2 V3 s( x! M5 H看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
( v3 `5 V) K% F F01.png g01.png
8 Q! d, l5 U7 d" o. G猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
1 t( r% S( ~, z# Z5 f. G4 K6 T. T7 G2 m1 Z+ L5 F+ {
1.寄存器
' \& I# K$ C. R& H1 A  _& lF、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系列上面则是所有的寄存器都有。% C1 l$ U5 F& E* C0 W
) _7 l9 u! H* t/ y/ s8 x
6 w; _( W9 }1 w) s
2 w+ k% s$ r0 l
2.特征
  n+ E- {; |, z这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
; u- P2 U; E, c9 K
3 @1 q' P2 n8 _1 ?4 p1 p3.功能" Y* B9 ]) ^) T2 ^6 }
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
' O+ z, @. n$ S4 o- x这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。
/ n$ D  T/ a, } 2019-01-11_175440.png
3 [5 H0 L- G- t9 _1 Z  \' Y+ t  a' T& K+ m
9 P; b- t+ e6 J2 \. A/ W最后是简单的测试代码:
5 }4 g5 N" W. q
  1. int main(void)/ z. z/ n& l9 i- ^* }# P
  2. {
    - P) @* i5 P; T2 X3 e
  3.   HAL_Init();
    : k( P6 A2 E& ^
  4.   SystemClock_Config();0 s/ N5 g, x" c/ b
  5.   LED4_GPIO_CLK_ENABLE();- c+ @/ T, ]8 D: U; n" z0 [8 |, B" A* S1 b
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;5 b9 n* P# Q5 y% C* I9 q
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;- t6 T: h8 _3 `* b0 F3 N1 _
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    9 ]5 \+ n2 C6 ?$ \
  9.   GPIO_InitStruct.Pin = LED4_PIN;
    * W# G6 m  U3 t, ^" \: o
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);
    # ]/ w* |5 m; b  N# F
  11.   while (1)9 N9 Y# N4 p# W; \
  12.   {
    8 e* F* U3 o' b/ e  d
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);5 r% M& d$ \* X; Z* |
  14.     HAL_Delay(500);% c' c* c' ~: K& h9 [$ r
  15.   }6 i' ]0 R7 p  ^! a. ~
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。$ j: g9 |' g  ?2 P

6 z. w( K9 J9 u% E/ }! O3 Y$ ~
收藏 评论1 发布时间:2019-1-11 18:10

举报

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