本帖最后由 stm1024 于 2019-1-11 18:27 编辑
9 t; N& j* X. x
! t5 r$ z4 @3 M; K% @拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port1 R5 C# o" k( Y% W
看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
! m9 D1 H( l! v1 o' v7 Z
3 D! v D- h' E1 }
猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。" F( q! z2 V8 d
; `; V2 X& S8 m" R0 w- V3 l% f+ `
1.寄存器; g9 [: ~3 D6 y$ w' f5 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系列上面则是所有的寄存器都有。- a) F d* {: h9 E6 M7 ~
5 S1 a7 @$ |& F1 T' a: `
u r5 v) v; l* x( Z' K" @, c$ G
a3 l z; _, P2.特征; @8 r- ~" S' S: Y9 F2 [. e6 @
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
3 Q0 |" o, ^7 @4 N Y% L
+ f- y( D5 e4 w2 |4 Y. A) T* W" i3.功能- i/ w _0 j* w3 n }8 c6 T
GPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
: K& i3 {* u& b) [这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。8 t$ R# i0 w' t* q4 k6 W ?
# R% l, R, p# v" f* R/ X8 I; L4 s# b0 t* d+ ~( R; z/ c
最后是简单的测试代码:. n" i9 @8 q8 g, N# P
- int main(void)
9 {' Y1 C# b. w- R0 \6 t - {) a% [4 I: D( Q z. t
- HAL_Init();: e2 a$ l( g6 r* m7 y7 O% w
- SystemClock_Config();1 Q" H1 ?5 ^% h% c
- LED4_GPIO_CLK_ENABLE();
. H9 L0 m1 _; q% P/ ] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
4 a; a! n" E. j9 }/ j9 l - GPIO_InitStruct.Pull = GPIO_PULLUP;, w& D4 t" x) E( g% Q, S$ Q+ M
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;* i* J. |2 u z' R& H* a* V3 B
- GPIO_InitStruct.Pin = LED4_PIN;
( H' V2 J- U/ _- X. P' l* m O - HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);5 T% J2 `3 }& s6 L+ ^- I
- while (1)$ O' r- E8 s9 D" {
- {
9 Q( e3 \# R1 d! C" S, K3 E* y - HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);& S! H% [2 F" ~3 A7 G
- HAL_Delay(500);7 e7 t$ E/ k8 O; @0 B d7 C, m
- }" K* {3 f: Z& v) H
- }
复制代码 在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。
2 v7 w8 ?7 e. _6 ~5 K5 Z9 L
( n4 g7 Z9 Z1 I a+ b3 A5 e |