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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑
3 s9 z* U! Z8 d" r% Q' h
$ M5 i. f2 v% V2 V- C, {* b拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port7 \- R  G! d( V
看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
/ t1 z) y( n& n! j F01.png g01.png ' v% q6 q" z& J! g" h% v8 U
猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
7 w5 L8 ?* v# o+ i; f5 T/ D( C" \$ b& d  F( F
1.寄存器
- \4 T  W# f2 xF、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系列上面则是所有的寄存器都有。+ L8 g! I6 M/ T0 D: L
  ^; J3 n4 O3 {, ^1 o% [1 F
/ }% z' O0 G3 |

/ L. g9 D8 }# Z2.特征( t; y6 Y" y# z# t1 y. b( ], t- H) R
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。! m' E# S+ R0 G1 v! G4 Z- S

% B# `2 |, I# ~& h' t% Y3.功能
. u& Y% K6 w4 _* i2 F8 H9 wGPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support4 m% W8 r. O  Z  f; D! R+ j5 ]
这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。0 g) p- O3 O6 ]5 C2 y3 y
2019-01-11_175440.png
" h# j  |. U& b" O# Q0 L5 }; T" b; ~6 C' ?! `5 K2 b/ g
最后是简单的测试代码:- b7 ^3 _/ h) a% @3 V0 V1 S
  1. int main(void)) l( d5 b9 G( L( C
  2. {
    : r# m% d( }/ k6 d+ A+ G, p
  3.   HAL_Init();7 }& C2 h4 C2 _8 @+ [- l6 q
  4.   SystemClock_Config();
    ! D: I1 g0 v. l
  5.   LED4_GPIO_CLK_ENABLE();/ e( u0 l; r6 M6 o  W
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    % U1 n% ?! {* q9 z4 q0 c
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;
    - p& @( [( K2 ~/ W) @/ l
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;. {$ s% w$ ^/ ^2 O6 u6 Q/ c0 T
  9.   GPIO_InitStruct.Pin = LED4_PIN;
    ) V( e! `, l7 X3 |) ^7 ]7 ~3 o
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);2 q* J. b! B9 j$ }, `% o& G* m
  11.   while (1)
    6 K8 ]# s; l5 z: N9 Z' m0 d
  12.   {
    3 x' N9 x  O) _, N# E* e
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);5 B* j/ W. d7 T9 V
  14.     HAL_Delay(500);
    1 [3 A8 I# q. q9 Q3 i# H, P& D. M
  15.   }
    6 i2 R0 y7 K& M: {6 U2 `8 o
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。
/ J9 ^# }! ?$ V3 y% {0 R9 H2 y
4 p/ `& a, M1 {% I
收藏 评论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 手机版