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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑 % F- }1 s4 ^/ M8 r5 }9 U
; o4 C( v( `+ Q- D$ w! a  N$ _! l( A
拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
$ _; q& n1 Q9 f. a: H, b看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
) k/ Q. e% m2 l" i F01.png g01.png
5 }1 e; U0 I9 A* r猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
1 O( `. D4 b  I% Z. N) u
5 V3 {* |( ^+ X8 t+ n1.寄存器% H5 c5 x$ {  u8 L& 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系列上面则是所有的寄存器都有。
1 a+ n9 W) r/ `8 k0 d* q  c# C8 m- @! T. F2 w

- c$ `; Y# z9 U0 z/ o1 z
8 _% u* [1 q, i( n1 e( A5 f8 _2.特征* Z5 o7 V- \0 g* N: W8 k* E
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
8 h0 ^5 j0 P, c2 V9 a5 ?9 w
4 B# @8 h2 E/ n3.功能
; {% N! Y' B" K* e" P! gGPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support. X2 N1 J6 F1 h# J8 Z
这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。) z% p; q/ a7 [! b3 n
2019-01-11_175440.png ! V0 @. l! R+ [! ?

9 q9 X3 A4 `3 [) F# R6 L最后是简单的测试代码:! {' ~' e& ^- t$ H0 P# `% m
  1. int main(void)
    ) F2 P" f0 V1 U9 J7 b8 w
  2. {5 a4 `  G) p, Y7 T$ H& V! }9 Y
  3.   HAL_Init();. r* Z/ n8 k+ C) H# z6 G/ i, v2 @
  4.   SystemClock_Config();* h9 M9 p. n+ K6 k3 z
  5.   LED4_GPIO_CLK_ENABLE();
    . k/ k6 `) B5 h+ T& w" m) z
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    & T4 `/ B9 f9 i" u2 a# H  S
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;: @) }! i; ^5 M/ [
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;; F, x6 M) `' ]( {6 j2 \
  9.   GPIO_InitStruct.Pin = LED4_PIN;
    : L& r  U5 x( Y
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);5 I/ y6 }3 r  v- C9 b) P
  11.   while (1)( b8 ?0 I8 K+ T: l* G4 P! ~4 ?
  12.   {
    . q8 M" P) I" W8 N/ g8 Z  Z) ^
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);% m& e& t  W' r, j  S* l
  14.     HAL_Delay(500);
    5 Y6 d% l& [  u) S2 F5 j
  15.   }/ J% J$ ^8 z7 G
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。2 }) O% g) I# ^2 ]
# H( \5 x+ L+ B0 ^# i; L
收藏 评论1 发布时间:2019-1-11 18:10

举报

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