STM32_GPIO输出

STM32_GPIO输出

以stm32f103c8t6为例

一、函数介绍

1、GPIO_SetBits

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能描述设置指定的数据端口位(1)
输入参数 1GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2GPIO_Pin:待设置的端口位
该参数可以取 GPIO_Pin_x(x 可以是 0-15)的任意组合

例如:

GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);

2、GPIO_ResetBits

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能描述清除指定的数据端口位(0)
输入参数 1GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2GPIO_Pin:待清除的端口位
该参数可以取 GPIO_Pin_x(x 可以是 0-15)的任意组合

例如:

GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15); 

注:函数末尾的Bits意味着多位,即可以多位同时设置

3、GPIO_WriteBit

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
功能描述设置或者清除指定的数据端口位
输入参数 1GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2GPIO_Pin:待设置或者清除指的端口位 该参数可以取 GPIO_Pin_x(x 可以是 0-15)的任意组合
输入参数 3BitVal: 该参数指定了待写入的值
该参数必须取枚举 BitAction 的其中一个值
Bit_RESET: 清除数据端口位
Bit_SET: 设置数据端口位

例如:

GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);

4、GPIO_Write

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
功能描述向指定 GPIO 数据端口写入数据
输入参数 1GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2PortVal: 待写入端口数据寄存器的值

例如:

GPIO_Write(GPIOA, 0x1101);

5、GPIO_Init

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
功能描述根据 GPIO_InitStruct 中指定的参数初始化外设 GPIOx 寄存器
输入参数 1GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2GPIO_InitStruct:指向结构 GPIO_InitTypeDef 的指针,包含了外设 GPIO 的配置信息

例如:

GPIO_InitTypeDef GPIO_InitStructure; 
GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_All; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

二、参数介绍

1、Port(端口)与Pin(引脚)

GPIOx与GPIO_PIN

​ 端口是单片机内部(CPU单元)和外部IO的接口组,比如说PA端口,有16个引脚,例如PA0~PA15。在STM32F103C8T6只有PA、PB以及个别PC引脚。

2、GPIO_InitTypeDef

端口初始化信息的结构体

typedef struct{
  uint16_t          GPIO_Pin;//引脚
  GPIOSpeed_TypeDef GPIO_Speed;//传输速率  
  GPIOMode_TypeDef  GPIO_Mode;//输入模式
}GPIO_InitTypeDef;

3、GPIO相关寄存器(GPIOx指向)

    - GPIOx_CRL:端口配置低寄存器
    - GPIOx_CRH:端口配置高寄存器
    - GPIOx_IDR:端口输入寄存器
    - GPIOx_ODR:端口输出寄存器
    - GPIOx_BSRR:端口位设置/清除寄存器
    - GPIOx_BRR :端口位清除寄存器
    - GPIOx_LCKR:端口配置锁存寄存器

4、GPIO工作模式

STM32的GPIO共有8种工作模式,分别是输入模式的模拟输入、上拉输入、下拉输入和浮空输入以及输出模式的推挽输出、开漏输出、推挽复用输出和开漏复用输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值