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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑 ' Q' t, h' U( `+ a1 b* {  Z/ P

+ F7 `& [) `! c7 _! B* I- w9 d! P拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
% k% v  S$ P$ d( V/ Z2 r看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
9 Z: \, [. O: B7 ~$ c F01.png g01.png
! o- e& Y7 }& ^+ z- [, y' q  N9 C0 S猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。* ^5 ^/ G  C6 g0 K/ O
2 Z! U/ y5 p! z% M7 w! {
1.寄存器' t; x1 H' B: i' U* M
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系列上面则是所有的寄存器都有。1 x$ c5 q- ~* B: l
# b! A9 o) h; N
- P0 W2 E# V, h) u' b

, B% U) {2 J$ r$ Y, H5 w2.特征6 J9 @! O/ o7 I/ _
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。5 ~3 F! o, _* z# M/ h4 f

+ `$ M' Q$ m$ {7 |/ P3.功能' c1 M% e1 `( b! R- x$ [( A$ H! J4 t7 Z
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support1 O% {& C+ x( r
这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。
5 F0 `0 I% o- p2 ~ 2019-01-11_175440.png + X# ?. E& D4 t: U9 \; V5 Y& y& i

& c9 b, p- N( b" e9 z4 n0 U9 V最后是简单的测试代码:. u: z' ~) n7 n, w2 Q% Z' n
  1. int main(void)9 C* d9 w1 w# o3 [  B, ~
  2. {
    ) x2 n3 `; n" n6 S1 n
  3.   HAL_Init();
    ' V9 {  u, B& u  M
  4.   SystemClock_Config();) i& V3 B# h- x' Z( d
  5.   LED4_GPIO_CLK_ENABLE();
    2 F4 B, P; U4 I1 d2 z+ r6 A
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;  z: x; w: g. h' O  e
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;0 B* ]) f3 L( l! l$ z
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;1 C2 m6 A$ m' E. i4 R% v4 O
  9.   GPIO_InitStruct.Pin = LED4_PIN;) t# M2 }5 p2 c$ ?$ H
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);, R7 Z# a) f0 s0 a) `
  11.   while (1)
    ) \2 S; e9 N0 A7 b3 q9 }
  12.   {
    8 Q: X# g3 Z0 I& W
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);
    : t2 |0 p+ c1 \
  14.     HAL_Delay(500);& m2 K4 }( \5 T+ d& _
  15.   }: r, E3 N$ A; O! H& e% f
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。3 O3 ~; q6 Z& ]" A; b
0 v( C8 `1 Z8 o  U9 j  w
赞 收藏 评论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 手机版