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

【经验分享】STM32库函数开发GPIO

[复制链接]
STMCU小助手 发布时间:2022-5-9 19:00
前言4 \; \! z9 G# H* K- }! m
一、GPIO函数

1 R0 l7 j" z# f" `5 H# q在固件库开发中,操作寄存器 CRH 和 CRL 来配置 IO 口的模式和速度是通过 GPIO 初始化函数完成:6 L# {* y) W9 {, H
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);+ J2 V* `/ P. Y8 {) j2 c2 i

" c( d& l& a: Z1 C- E. J" ^4 R1、结构体:0 @. j- k8 `9 X7 r
. g$ V: Z+ i" w" ]( a5 M
  1. typedef struct
    9 p5 S7 m6 z( |/ W+ p
  2. { uint16_t GPIO_Pin;
    6 J, H0 X& B1 |1 S  T
  3. GPIOSpeed_TypeDef GPIO_Speed;
    6 e4 E6 v; ]3 n, M
  4. GPIOMode_TypeDef GPIO_Mode;
    ; s1 S! r) i0 N
  5. }GPIO_InitTypeDef;
复制代码

% S9 K" h5 x7 l8 C  @) c5 T2、通过初始化结构体初始化 GPIO 的常用格式是:: k! A; R- R7 S( B

" C2 N( D% ?% k; O6 x# v
  1. GPIO_InitTypeDef GPIO_InitStructure;
    - \) O  d3 {" c
  2. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置7 s* z+ N+ a7 U3 p/ G
  3. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
    9 F7 m/ n, ^+ [# g: ~9 I  o
  4. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度 50MHz  p0 k/ T/ ^# c2 j
  5. GPIO_Init(GPIOB, &GPIO_InitStructure);//根据设定参数配置 GPIO
复制代码
3 r. ]# \/ i7 s; N3 B+ k
3、BRR 寄存器是端口位清除寄存器。该寄存器的作用跟 BSRR 的高 16 位雷同,这里就不做
8 t) d' b5 `$ i: P% [% h详细讲解。在 STM32 固件库中,通过 BSRR 和 BRR 寄存器设置 GPIO 端口输出是通过函数GPIO_SetBits()和函数 GPIO_ResetBits()来完成的。" [3 f* O: W. Y# ~- r

, a$ b4 ]5 D: m0 G
  1. void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
    6 g: C8 `5 ?: {1 f* i5 G' N
  2. void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
复制代码

) Y/ p$ O# U3 Q在多数情况下,我们都是采用这两个函数来设置 GPIO 端口的输入和输出状态。比如我们要设置 GPIOB.5 输出 1,那么方法为:
, d% T$ N) M6 d: bGPIO_SetBits(GPIOB, GPIO_Pin_5);' V9 I* o& X8 k" ^5 ~4 t9 u' F7 t

7 ^) V" z/ M+ p7 {反之如果要设置 GPIOB.5 输出位 0,方法为:4 K' x0 p2 P* R- p+ r3 \
GPIO_ResetBits (GPIOB, GPIO_Pin_5)0 }0 a- f7 g. l! D, i( E
# h3 U/ t% H' Q9 ]1 a
操作步骤为:+ V9 Q9 N7 M6 e5 _1 [
1) 使能 IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd()。$ c# \9 [% L( x
2) 初始化 IO 参数。调用函数 GPIO_Init();
$ A0 l& h, j. _+ b# R9 v1 r3) 操作 IO(配置结构体 参数)。
- |4 v4 ^1 l. ~; }* W  i9 [
1 q2 [) _5 o/ n9 |* |8 i$ E( E' _. M; w% I/ c/ t
, G9 G: I2 @: \) g+ B; z. W

2 S, O2 ~* M( ]6 A) V
赞 收藏 评论0 发布时间:2022-5-9 19:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版