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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑 7 ?9 \. t; }. \! {

  h/ @% u8 f, W4 D拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
" ~; }# j+ S  g2 `+ W- A' T看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:! c+ i5 u+ B1 ]  z
F01.png g01.png
# m) P: ~- |( v) ]猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。6 ^$ e2 z3 s) r$ ^
9 k0 ?* Y6 }! `7 ]' Y5 K
1.寄存器
4 c  m" [/ }8 H$ J$ T7 s+ K  s8 [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系列上面则是所有的寄存器都有。
# q. o: e+ i/ x- j# g8 @
1 H+ A" ~, t) ?  s4 |. b
" S* y" K9 \" j) C! b5 v6 Q% j- S, I
) z) Q7 R' `; I6 m9 y/ J. y" N0 [2.特征
$ V- }) G! n. g, w2 {% @# M这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
7 g* f$ u1 U. I2 O/ n: ]
3 N) `9 P- L% j4 i/ j3.功能- p- C3 i9 w6 Q. a4 E8 Y+ N/ `
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
# K. V% M# l2 P: T这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。
" g+ y# x2 ~, Z: `- X 2019-01-11_175440.png + y2 |( }& A. T; k* I

6 }$ ^/ k/ ?- c5 n7 r1 g/ L最后是简单的测试代码:' |, @: O. _- A
  1. int main(void)
    & e* T% {7 P; P+ K! c  [. G
  2. {
    7 X) p( r9 x# [: M4 P/ m' ^5 X
  3.   HAL_Init();2 H4 @6 J5 k1 P6 ]- }  j5 [( T4 ]
  4.   SystemClock_Config();5 Q1 e$ f7 p* p, Y6 d
  5.   LED4_GPIO_CLK_ENABLE();
    & w; [2 _  [$ `% }- F
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    ) @" N$ b" A0 Q# Z: G- S
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;. l  s+ k! |/ L: ^. B* I
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    ! z# z) F4 _$ q( a; x; V8 g$ y
  9.   GPIO_InitStruct.Pin = LED4_PIN;- ~" U$ Y7 i1 v$ U  c7 z8 i
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);
    ( @3 i9 m8 u2 v: G
  11.   while (1)
    ; ?$ ?* m( a$ {/ S, k- _
  12.   {
    - a: G6 X/ i0 I( Z
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);
    ( K- b$ \) K$ N& }  \6 z
  14.     HAL_Delay(500);
    , `+ R6 s% d% ~2 ~
  15.   }
    ) Z$ I; H. W; x% K3 y8 [$ \+ I- K
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。8 o  L( q' ~& |
# K0 V* e; Y; [" x
收藏 评论1 发布时间:2019-1-11 18:10

举报

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

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版