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

【经验分享】STM32F4 GPIO八种模式及工作原理详解

[复制链接]
STMCU小助手 发布时间:2021-10-12 14:15
1 GPIO简介
, B6 h; Y9 ?% r; u8 L% d. \GPIO,即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。. j5 `2 t+ k  {4 D& L2 Z% I1 V+ u

! m. I! \, J; N& f! A

  J4 H+ Y" P( ]& f2 H5 fSTM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口  通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。  并且F4系列是基于Cortex-M4内核  
( P9 @3 g" S* R3 b1 \1 y
( S8 a& |1 [& y; R1 s4 g0 F, g
0 r" W0 p( D; D6 W) G
GPIO的复用:1 B1 }6 v9 w1 F- z' H
" I* z8 h/ R( N9 C% V4 j( h
0 w- `8 O- {; \+ m5 J' R7 a
STM32F4 有很多的内置外设,这些外设的外部引脚都是与 GPIO 共用的。也就是说,一个引脚可以有很多作用,但是默认为IO口,如果想使用一个 GPIO内置外设的功能引脚,就需要GPIO的复用,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。    比如说串口  就是GPIO复用为串口
7 U9 O* p9 |9 P% s. @0 j1 Q7 }! h+ x6 ]: M# |" K5 Y
2 GPIO的工作模式
. E+ ^. d) S$ b& \1、4种输入模式
- ]3 {, Z& r, u1 B
' h3 r& L; i  `  {6 E3 P% L
, N7 z- O7 Y9 x
(1)GPIO_Mode_IN_FLOATING 浮空输入
+ V  D/ z/ _( ]8 j; J3 b(2)GPIO_Mode_IPU 上拉输入' I; d% @  i( z6 W" P6 V
(3)GPIO_Mode_IPD 下拉输入0 r- r3 N' T6 G% b- g
(4)GPIO_Mode_AIN 模拟输入0 M/ a1 r! u: \8 R) K3 \
  \7 E8 y: r2 \' ^% `

9 A: m0 |, O% N" j( W6 q, R2、4种输出模式 ( K+ I' p  g8 g8 G; N

  ^+ R: ^" ]( y$ P$ W4 h
# e1 I, @2 z/ _
(5)GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)# a1 \% {5 L6 m- [% z$ Y
(6)GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)
2 ]7 f; {* t7 C0 I9 O" @5 D  d(7)GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)
) S5 l) z& e. ?(8)GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)
8 ?4 u. R5 a$ d3、4种最大输出速度
! l- K3 z$ q4 C4 V9 t, [(1)2MHZ  (低速)
# X7 U; C4 y3 b( G4 d! P$ S* _% i(2)25MHZ  (中速)
+ q  ~9 @) i7 [1 g/ t" t8 C(3)50MHZ  (快速)$ x9 w6 A$ ^& k$ w6 z6 o
(4)100MHZ  (高速)8 s4 Y2 ?" M: n& t3 e$ K) `  k; v
1 u6 R, f1 x9 M4 V
关于他们的定义,都在  stm32f4xx_gpio.h 中,都为结构体形式的定义
' R) z' Z% r' o5 R& v8 S, ~3 ]! o+ j1 G5 m3 p5 S

, A* J- e% G# \7 c* t3 GPIO框图剖析* X" [  [) g+ E& B1 j; f! O
14.png 9 z; O* _5 b5 ^2 q  d2 i
我们所用到的每一个GPIO其内部结构都是这样,分别对应着GPIO的八种模式  这里我们简单的介绍下:4 b* s: ]3 o6 j) U

( S+ }# j5 D4 L, }& S4 @, b

9 [8 l2 g" F- M保护二极管:  IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入,当引脚电压高于VDD_FT时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁 / a1 }5 `& x9 i, }
上拉、下拉电阻:控制引脚默认状态的电压,开启上拉的时候引脚默认电压为高电平,开启下拉的时候引脚默认电压为低电平
4 \* [" d, o$ O2 j6 {5 r) H' gTTL施密特触发器:基本原理是当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;IO口信号经过触发器后,模拟信号转化为0和1的数字信号    也就是高低电平  并且是TTL电平协议   这也是为什么STM32是TTL电平协议的原因
6 {# P8 G8 p% P! }/ P P-MOS管和N-MOS管:信号由P-MOS管和N-MOS管,依据两个MOS管的工作方式,使得GPIO具有“推挽输出”和“开漏输出”的模式     P-MOS管高电平导通,低电平关闭,下方的N-MOS低电平导通,高电平关闭2 i+ T9 S" J! w. P1 l# e
注:  VDD_FT  代表IO口,兼容3.3V和5V,如果没有标注“FT”,就代表着不兼容5V      
4 Q2 o: p  Y, @$ D  F* X
$ p+ Y; N; ]& g# e- d6 c7 c
  \# t7 g# _- u/ c: M8 c/ H5 p
在芯片数据手册的引脚定义中,会看到有“I/O电平”一列  有FT即为支持5V& C& s7 H) P/ p) N  h, p
15.png
* w* D! l/ Y6 b0 ?$ X1 g* q3 s4 GPIO的八种工作模式剖析:
) t8 F. l) w% B 浮空输入模式
7 j0 u  P$ V; `; o9 R# A 16.png          ( z# A- a3 U- U7 l  [6 G. [( C
浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。MCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。 (接用电压表测量其引脚电压为1点几伏,这是个不确定值) 以用来做KEY识别" x3 Z& t- T! f  Y; Y- I# z

4 @3 T6 q5 t8 `, m& l4 N
7 W% U; J- R* a, ^# F
上拉输入模式
- ~7 @7 m5 Q; ^( b/ k6 ^( i 17.png          
3 \7 R2 \6 u; X6 U2 Q IO内部接上拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为高电平  如果I/O口输入低电平,那么引脚就为低电平,MCU读取到的就是低电平' r6 e1 M* N( P. I7 x+ o/ L
) i2 W* }& Y; x6 P1 F$ F
+ b0 E( d1 ^# ^  a' k8 J  P! F
STM32的内部上拉是"弱上拉",即通过此上拉输出的电流是很弱的,如要求大电流还是需要外部上拉。4 r4 i3 N( W  g& ]1 f
$ t/ {! e5 J: y

7 @1 [+ X8 D* n. r, c; h下拉输入模式
1 T7 U% s. c+ }( b& w4 `6 e/ Z 18.png      
4 S! e7 L1 b$ B IO内部接下拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为低电平  如果I/O口输入高电平,那么引脚就为高电平,MCU读取到的就是高电平
  K4 B- ^7 P, e. b, j
* T4 f( A! X' g( \- U" E: l& b' \4 f模拟输入模式
0 @' O8 w! d4 {( C8 C! g8 D 19.png          9 }# I" U3 C+ I) X
当GPIO引脚用于ADC采集电压的输入通道时,用作"模拟输入"功能,此时信号不经过施密特触发器,直接直接进入ADC模块,并且输入数据寄存器为空 ,CPU不能在输入数据寄存器上读到引脚状态
7 `9 n  v/ d0 P5 m! c' G1 a) I
  `" p4 M6 V( W& ^5 Q* ~. r

4 r: `- l1 g) n; y5 n$ Z/ v当GPIO用于模拟功能时,引脚的上、下拉电阻是不起作用的,这个时候即使配置了上拉或下拉模式,也不会影响到模拟信号的输入输出9 R8 U  m& ]( {1 i) \. }3 l

8 z- i# M: d7 {% w" U" H% J
7 h  h# P3 [6 X0 k7 o4 v4 V
除了 ADC 和 DAC 要将 IO 配置为模拟通道之外其他外设功能一律 要配置为复用功能模式,1 i9 S$ b# P0 g

+ b' }5 Q% {0 e
: B* j6 T# Q0 j' Q2 i
开漏输出模式(带上拉或者下拉)
* c$ G/ }" s% F+ N  E. h 20.png   e( y6 f! L* K( B
在开漏输出模式时,只有N-MOS管工作,如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出低电平,I/O端口的电平就是低电平,若控制输出为1时,高电平,则P-MOS管和N-MOS管都关闭,输出指令就不会起到作用,此时I/O端口的电平就不会由输出的高电平决定,而是由I/O端口外部的上拉或者下拉决定   如果没有上拉或者下拉 IO口就处于悬空状态
( P# v& R) a/ ~6 |9 _1 E" ?& \# ~) O2 j% ]1 W

- x+ v. {; G, _" f并且此时施密特触发器是打开的,即输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态。,I/O口的电平不一定是输出的电平   % F; Z. V7 P  ]6 C  v8 y

( h& [5 D! p7 W, J; l& X

& j+ I7 y- o# C6 w; V: ^推挽输出模式(带上拉或者下拉)" Z9 k% D9 Y% e3 }4 O
21.png / J) p3 H+ c5 O% P+ @
在推挽输出模式时,N-MOS管和P-MOS管都工作,如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出低电平,I/O端口的电平就是低电平,若控制输出为1 高电平,则P-MOS管导通N-MOS管关闭,使输出高电平,I/O端口的电平就是高电平,  外部上拉和下拉的作用是控制在没有输出时IO口电平
! Z) M/ _+ k8 n, l- {4 |6 U; g" c( l" x
0 z9 G3 N1 j: u6 l+ c
此时施密特触发器是打开的,即输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态。I/O口的电平一定是输出的电平   . S# {- a# q2 m7 `! {" }

7 T' [' U/ n% I+ a, ~, M

) ^. W4 v/ ^& \3 V9 F/ c* R+ d复用开漏输出(带上拉或者下拉)
" P* n: b! o0 {( P; z4 W: q1 q2 J 22.png ( M& z2 B* i) `' f( A6 d
GPIO复用为其他外设,输出数据寄存器GPIOx_ODR无效;  输出的高低电平的来源于其它外设,施密特触发器打开,输入可用,通过输入数据寄存器可获取I/O实际状态    除了输出信号的来源改变 其他与开漏输出功能相同
2 b; [. ?: m$ A8 d, m, a* F( F; f: o6 W: W
+ b& B' v* ]) [3 ^- m7 R+ D
复用推挽输出(带上拉或者下拉)
% j- G* V' }8 [; S 23.png                           
: s! l; W! k' L8 d9 i/ LGPIO复用为其他外设(如 I2C),输出数据寄存器GPIOx_ODR无效;  输出的高低电平的来源于其它外设,施密特触发器打开,输入可用,通过输入数据寄存器可获取I/O实际状态    除了输出信号的来源改变 其他与开漏输出功能相同
) @7 s  E& V8 B8 Z* n+ p; g$ j) @: z) k, G* Q# x1 W
开漏输出和推挽输出的区别:
  c% }  N. r+ y8 x# G. D2 z9 U0 C9 Y  v

  a+ U: B6 S7 m推挽输出:3 S. l& o' R$ N* n) U
8 |' {& y, n, w- i* L% n* _
& ]# p. [& i1 s( L
可以输出强高低电平,连接数字器件
5 ?7 m# D0 p% j# d, v  V
; f3 G7 Q) v3 _/ r' i! A/ r# e5 [
+ k2 Y6 [1 }) b
推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
. d% [- q" D) w+ y+ _+ q1 n& n8 U# K" T0 U- p

' \, P5 G; ?3 o1 ^3 u开漏输出:4 `* D5 n; D" }& F
2 A- I# c' i7 A6 p7 J( x

7 Q# c% C7 ?9 B3 w0 [可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 需要外接上拉电阻,才能实现输出高电平  合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内);% c' j! l5 e& c2 _

4 j1 c: `+ ]+ S3 ]9 I0 s8 {
7 i$ G3 z* K% y, Y' K! b+ O
在使用任何一种开漏模式时,都需要接上拉电阻,否则只能输出低电平
3 i* m7 h" o: Y1 E 24.png 0 _. j* `1 z' Q; u6 ^+ D# C
推挽输出电路: 其中IN端输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当IN端输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平   / N: H  P% E8 d

; t" a; I" n% n& i) y# [0 J) L9 ?
) D" l  N3 C  m$ @
开漏输出电路:IN端输出低电平时,三极管导通,使输出接地,IN端输出高电平时,三极管截止,所以引脚既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须接上拉电阻,9 J& q% O8 M; D' b* O0 k, @7 h" T
4 C1 l- `1 s2 y

2 }. B* E# y: d. a8 q. L7 A% ~在STM32中选用IO模式:3 b: a8 L  z3 m* m
- A$ Z8 x9 }" \" D. Y% g" y3 [
( q0 d5 d1 j6 ~% v0 n2 ~
上拉输入、下拉输入可以用来检测外部信号;例如,按键等;' t; s" v: p( [: v. Q
模拟输入 ——应用ADC模拟输入,或者低功耗下省电, V& k3 W4 O: f. {
开漏输出一般应用在I2C、SMBUS通讯等需要"线与"功能的总线电路中。
+ R3 P2 p# C9 _% H9 C- K' u 推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。
6 R6 z7 v' {8 a3 t& h复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA), H3 k' c& a) t/ y
复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)7 G; z$ H" \, D/ M( s; J
F4系列与F1系列区别:
0 Z7 E# s2 s2 f" ]' h本质上的区别是F4系列采用了Cortex-M4内核  而F1系列采用Cortex-M3内核
2 \4 E5 n+ p: c
4 U/ |( p% k1 _  _7 b

+ G0 _% c! l+ T( l  U) m+ q3 tF1系列(M3)IO口基本结构:
. R( J. d% a  c+ ]8 g8 e 25.png ' w9 J, A7 d; W' d. {( l3 Y
F4系列(M4)IO口基本结构:
( M* |" f* T9 |" ]) b% b  O$ x 26.png
" ~" i6 r' E  n$ O" }1 e( @, M  SF4系列设计的更加高级与人性化,他将外部上下拉电阻转移到了输出/输入驱动器外部,使得输出模式下也可以实现内部上拉与下拉,方便了用户的使用,增加了灵活性
) G1 L* J, t( c! \; s& I. J: M. Q7 h
GPIO的初始化(F4)
9 Q% _$ n( b+ o* x这里我们以初始化LED为例) S" P  K' t% ?1 v- M! W7 I( v2 ^
' p3 O  ?4 D% w' x2 f8 F
9 O3 n- ~* O# T6 C
1.定义一个 GPIO_InitTypeDef 类型的结构体
. \# Y, Q- ]0 P9 O0 f3 ?6 R
  1. GPIO_InitTypeDef GPIO_InitStructure;   /*定义一个 GPIO_InitTypeDef 类型的结构体*/
复制代码
一共有5个参数/ x, o8 P; F+ G5 v" p$ S( ?% J
27.png + M+ z5 n0 ^' e: b) O# @/ L
2开启 LED 相关的 GPIO 外设时钟
" F* I) R( \- |) ~- A
  1. RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOB, ENABLE);     /*开启 AHB1时钟*/
复制代码
   Q:为什么要设置时钟?% ]5 h; |* L, a* u6 j; K1 Q/ m# ]+ ~: d

$ F" o7 r+ A8 m( x4 A

# \/ r; L  l/ @+ q+ \$ x    任何外设都需要时钟,51单片机,stm32,430等等,因为寄存器是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。stm32是低功耗,他将所有的门都默认设置为disable(不使能),在你需要用哪个门的时候,开哪个门就可以,也就是说用到什么外设,只要打开对应外设的时钟就可以,   其他的没用到的可以还是disable(不使能),这样耗能就会减少。* d5 b: K  V+ m& v" b" Y
. {% Y$ w! s9 i% ]

$ J& i! N0 l( N4 L2 n; m0 C$ BQ:为什么 STM32 要有多个时钟源呢?! _+ h: b: ], |5 [4 }# x# r

* J% s  Y+ Y& Y# F( \

' W3 ^7 ]" q) E8 [因为首 先 STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率, 比如看门狗以及 RTC 只需要几十 k 的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁 干扰能力也会越弱,所以对于较为复杂的 MCU 一般都是采取多时钟源的方法来解决这些问题。" l3 e. {6 z# K

& W" y# X: ?, k3 f4 p4 S: l1 d- V, l9 s; z

) b- ~, q# {/ ?( W: K而相对应的外设功能所使用的时钟 在stm32f4xx.h 中即可查看到
/ S% i/ F& M5 Z% s7 h
) V5 f; }6 E7 t) f( \  f' N

9 v; @. Z' M/ }/ `4 d6 w% URCC_AHB1) {* g3 }$ G: P# R# q% h! F
28.png
% O3 L; E0 }& ^* v7 DRCC_APB1
3 g7 n1 A& k+ P* p) t  ~ 29.png
, h' q/ p' M5 ]9 x3选择要控制的 GPIO 引脚
! o: P/ u" E8 t2 j0 |) J3 _% p3 O% a
  1. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  /*选择Pin9引脚*/
复制代码
可选引脚为0-15 一组IO口有16个引脚
1 N- L+ h$ E- w/ b$ y2 F4 Q' Q% u3 g; L 30.png , j! U: q! y1 X; R
4设置所选引脚的模式  _5 j& L0 o# {. q3 }$ X' [
  1. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   /*设定为输出模式*/
复制代码
引脚的模式共有四种,分别为输入,输出,复用,和模拟模式
" H( K- ~, \/ z2 _% `. C; c- } 31.png
' W1 k2 U! x1 x5 设定所选引脚的输出类型
- p) b9 D2 ^- H* B1 V5 b
  1. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; /*设置引脚的输出类型为推挽输出*/
复制代码
输出模式有两种:推挽输出和开漏输出   
1 l* M0 ]8 A9 R& A7 X. v 32.png 0 O- l+ R6 j  `6 m+ Z2 _0 ]
只有输出模式才需要配置,输入模式下不需要配置5 S4 q; o0 M, G+ `" K7 i

8 I8 r8 p. ^% N- ~# }$ [4 ]

9 `3 P& q" _9 t6 设定所选管脚的速度$ I4 c- [, R& ^
  1. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//设定速度为100MHz  高速模式
复制代码
33.png - X& ~7 N5 Z( |
7 设定所选管脚的上拉与下拉
1 ~7 ^' m( C- B9 o. T2 C
  1. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; /*设置引脚为上拉模式*/
复制代码
可设置为:上拉,下拉,与浮空
' ^) C8 [" D3 Q2 ^* O! f* Q 34.png 1 J% g) \! C' ~
8初始化GPIO/ q7 L# R1 p* X: H
  1. GPIO_Init(GPIOB, &GPIO_InitStructure);    //初始化所设置的引脚
复制代码
GPIO_Init() 是官方配置的初始化函数  第一个参数是GPIOX 第二个参数是结构体所对应GPIO各种参数的配置
0 a. A  T% Q* v5 a0 S) J
$ }5 [- |' u, p3 y7 u! ?GPIO的初始化(F1)1 n/ z# f$ }4 z2 d' J
F4的初始化相较于F1系列有了很大的改变,在配置F1系列时,结构体只有三个参数  
: g2 C# g8 d# B( S, {: n1 B; F- }0 T. o0 k% V7 D. |' r  v

% D0 {& w* Z5 j+ u& H5 C GPIO_InitTypeDef 类型的结构体
- d+ P4 A0 C( A2 `  y* A 35.png
2 H$ g: I1 h1 Q所选管脚的速度
  D( K0 b' b( }4 w 36.png
) @) n2 H9 {6 ^. _8 ]所选管脚的8种模式
& Z2 j8 z1 A% R, v7 \) R. M 37.png
% B5 x3 N' G/ w: v区别:
& a+ j+ w; j+ V% G' y+ F6 u: K4 Y/ X5 T: m0 T3 E) `; S0 Q$ `
4 _0 M( M+ T1 j2 j, F* h: I( J" P( q
F1(M-3)系列管脚速度只有三种模式  并且管脚的模式配置八种模式全部都在一起定义,直接设置即可% x* s4 V; i; g+ P5 {& X0 L' j

: `6 ]' G6 ~. b' n) U5 e: {

" W1 _% Q1 B; ]" [总归还是大同小异,不做过多介绍,看下下方配置即可/ J$ l" P7 M0 y/ ~% f& Z. N
  1. void led_init(void)
    : C! j/ T  r3 ?. M  ?' l
  2. {
    7 B6 Y% K& ^. m
  3.         GPIO_InitTypeDef GPIO_InitStruct;                    //定义初始化结构体
    3 t" n; c+ l8 |  M
  4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA时钟
    $ c! X$ s/ `; ]7 V: S4 v3 b& u
  5.         7 [6 ~  @1 [/ m- I7 \
  6.         GPIO_InitStruct.GPIO_Mode    = GPIO_Mode_Out_PP;     //配置模式
    0 d6 g1 E0 }( E: b- n2 o7 i
  7.         GPIO_InitStruct.GPIO_Pin     = GPIO_Pin_0;           //配置哪个IO口
    # w) A% Q* R( r+ `  c
  8.         GPIO_InitStruct.GPIO_Speed   = GPIO_Speed_50MHz;     //配置IO口速度,仅输出有效2 V* C) H4 |' Q/ d- b
  9.         GPIO_Init(GPIOA,&GPIO_InitStruct);                   //初始化GPIOA的参数为以上结构体/ \+ R) k3 D: B: S* k) d; r
  10. }
复制代码

- S" D& T  d8 X; S6 A$ ]! C) S  h/ N2 W. V
* @5 o; K& b7 h

( h" a: j! K8 v7 f
收藏 评论0 发布时间:2021-10-12 14:15

举报

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