您的位置 首页 厂商

STM32学习笔记之GPIO

GPIO功能描述每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位复位寄

GPIO功用描绘

每个GPI/O端口有两个32位装备寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32方位位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位确定寄存器(GPIOx_LCKR)。依据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位能够由软件别离装备成多种形式。 ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模仿输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功用 ─ 开漏复用功用每个I/O端口位能够自在编程,但是I/0端口寄存器有必要按32位字被拜访(不答应半字或字节拜访)。GPIOx_BSRR和GPIOx_BRR寄存器答应对任何GPIO寄存器的读/更改的独立拜访;这样,在读和更改拜访之间产生IRQ时不会产生风险。

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

#ifdef USE_STM3210C_EVAL

GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);


GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
#elif defined USE_STM3210B_EVAL

GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
#endif


GPIO_InitStructure.GPIO_Pin = USARTy_RxPin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = USARTz_RxPin;
GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = USARTy_TxPin;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);


GPIO_InitStructure.GPIO_Pin = USARTz_TxPin;
GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//GPIO_Init(GPIOB, &GPIO_InitStructure);

}

#ifndef __LED_H
#define __LED_H

#include “stm32f10x.h”

#define LED1On()GPIOA->BSRR = GPIO_Pin_4
#define LED1Off()GPIOA->BRR = GPIO_Pin_4
#define LED2On()GPIOA->BSRR = GPIO_Pin_5
#define LED2Off()GPIOA->BRR = GPIO_Pin_5
#define LED3On()GPIOA->BSRR = GPIO_Pin_6
#define LED3Off()GPIOA->BRR = GPIO_Pin_6
#define LED4On()GPIOA->BSRR = GPIO_Pin_7
#define LED4Off()GPIOA->BRR = GPIO_Pin_7

#endif

PS:在运用GPIO前有必要进行装备,留意复用功用,使能GPIO时钟等。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/258044.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部