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

STM32G071使用评测:GPIO

[复制链接]
STM1024 发布时间:2019-1-11 18:10
本帖最后由 stm1024 于 2019-1-11 18:27 编辑
4 i7 D* P2 u" K0 f! j  A: K5 {& J
拿到开发板,熟悉的套路都是先从GPIO着手,这次通过对比G071和之前的F071,看看G系列在GPIO方面有哪些新的变化。0.Port
2 N, e$ U- {  }看参考手册,G071只有ABCDF口,而F071有ABCDEF口,似乎F0更多一些?如果仔细看针脚定义,就知道原因了:
) i3 p) @& l- R- O0 E F01.png g01.png " x5 R5 Z! S, v: ]0 Z; ~( V
猜猜看哪一个是G0的针脚定义?当然是右边。通过对比可以发现,G0的针脚定义更加规整连续,应该是在推出之前做过缜密设计,相比较而言,F0系列的就显得混乱一些。
6 n# u: a  z3 D& l0 S6 D# w& Y, |1 W4 D2 N5 t2 o8 ?! @
1.寄存器
& D, Q% z* @2 |& [& G8 ]: k/ l' EF、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系列上面则是所有的寄存器都有。
, R  t2 M. t7 @! O2 R9 Y6 K- w4 m- e& d

; [1 \+ G! L2 {. V: B% q
7 V  s% H! B1 i0 `5 c2.特征* z( V. h& n) K" `: [  I
这个方面没有太对的变化,不过得益于G0的GPIO数量的增加,因此Alternative Function不像以前F0那样,有些针脚最多要支持16个AF,G0系列最多只支持8个AF。
( h5 c# V9 h, x2 N+ G6 m) G  h4 o5 n$ M: O) }5 v
3.功能
% `9 P5 s4 Z) l# m0 k+ WGPIO的常规功能基本上与F0系列保持相同,但是也增加了一个新的功能:USB PD / Dead battery support
, g& I& a; K8 u$ o' a  g这项功能应该是支持Type-C Power Delivery的,也是我目前比较关注并想了解的一项功能,不过官方尚未就GPIO对此项功能做详细的解释。& q, y8 H3 O1 A: P: r; h
2019-01-11_175440.png & ]: M! E" ~" q$ [3 [  ~' l. W
2 y# L9 S( g: ~$ J2 k6 b
最后是简单的测试代码:
5 H. p/ q" O( }! A
  1. int main(void)
    ; }. h1 i' |5 G: J
  2. {
    / \; N; M5 f6 g; z3 ?6 a/ N
  3.   HAL_Init();
    + W3 ]# Z) v0 `8 y, T5 E4 P
  4.   SystemClock_Config();
    - ]9 q, H7 h5 N
  5.   LED4_GPIO_CLK_ENABLE();6 u; \' D+ z) `! n% `; Q$ H
  6.   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;" g' K8 D0 C, r7 x1 u. w' Q) h  V" j, S
  7.   GPIO_InitStruct.Pull  = GPIO_PULLUP;9 D  c7 N9 b% Y
  8.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    $ [- C% M" e% e8 ~! j
  9.   GPIO_InitStruct.Pin = LED4_PIN;2 Z3 L* a' H# u" F
  10.   HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);6 d% f$ C7 m0 O4 y2 U% c" j
  11.   while (1)6 ^. E1 i2 K0 c' w0 `  p6 i
  12.   {" d: a9 g: I2 l6 B
  13.     HAL_GPIO_TogglePin(LED4_GPIO_PORT, LED4_PIN);) E( a# T7 e8 K7 V% m
  14.     HAL_Delay(500);
    9 i# F: n' `; E
  15.   }
    * j* Q2 P6 q8 n; g* j+ I% s
  16. }
复制代码
在GPIO上也玩不出什么新花样,主要还是对比了与之前F0存在的不同。
! N0 v7 k& a2 k+ P; Y
- Q# G. P* ]5 ~
收藏 评论1 发布时间:2019-1-11 18:10

举报

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

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版