当前位置:网站首页>STM32 --- GPIO configuration & GPIO related library functions
STM32 --- GPIO configuration & GPIO related library functions
2022-07-05 08:15:00 【chen_ bx】
STM32---GPIO Configuration of library functions & GPIO Related library functions
gpio file
The header file :stm32f10x_gpio.h
Source file :stm32f10x_gpio.c
To configure GPIO step
① Can make IO Port clock .
Call function
RCC_APB2PeriphColckCmd();
Different IO Group , The clock enable function called is different .
② Initialization function
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
effect : Initialize one or more IO mouth ( The same group ) How and speed .
This function mainly operates GPIO_CRL(CRH) register , Pull up or down
When is it set BSRR perhaps BRR register
GPIOx: GPIOA~GPIOG
The initialization structure is as follows
typedef struct
{
uint16_t GPIO_Pin; // Specify the to initialize IO mouth
GPIOSpeed_TypeDef GPIO_Speed; // Set up IO Port output speed
GPIOMode_TypeDef GPIO_Mode; // Set the working mode :8 One of the species
}GPIO_InitTypeDef;
Be careful : peripherals ( Include GPIO) Before use , Almost always enable the corresponding clock first .
GPIO Initialization example :
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);// open GPIOB The clock
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 port configuration
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // Push pull output
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO The mouth speed is 50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); // Initialize according to the set parameters GPIOB.5
You can initialize one at a time IO Multiple under group IO, The premise is that these IO The configuration of ports is the same .
GPIO Related library functions
2 A read input level function :
①
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
effect : Read something GPIO The input level of . The actual operation is GPIOx_IDR register .
for example :
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5);// Read GPIOA.5 The input level of
②
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
effect : Read a group GPIO The input level of . The actual operation is GPIOx_IDR register .
for example :
GPIO_ReadInputData(GPIOA);// Read GPIOA All in the group io Port input level
2 A read output level function :
①
uint8_t GPIO_ReadOutputDataBit (GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
effect : Read something GPIO Output level of . The actual operation is GPIO_ODR register .
for example :
GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5);// Read GPIOA.5 Output level of
②
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
effect : Read a group GPIO Output level of . The actual operation is GPIO_ODR register .
for example :
GPIO_ReadOutputData(GPIOA);// Read GPIOA All in the group io Port output level
4 Set the output level function :
①
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
effect : Set up a IO The output of the port is high (1). Actual operation BSRR register
②
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
effect : Set up a IO The output of the port is low (0). In practice BRR register .
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
These two functions are not commonly used , It's also used to set up IO Port output level .
This article refers to the notes on punctual atoms
边栏推荐
- Solutions to compilation warnings in Quartus II
- OC and OD gate circuit
- 【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl
- Hardware 3 -- function of voltage follower
- Several important parameters of LDO circuit design and type selection
- Basic embedded concepts
- Talk about the circuit use of TVs tube
- Talk about the function of magnetic beads in circuits
- Simple design description of MIC circuit of ECM mobile phone
- UEFI development learning 5 - simple use of protocol
猜你喜欢
Shell脚本基本语法
Interview catalogue
Carrier period, electrical speed, carrier period variation
Reasons for rapid wear of conductive slip rings
[tutorial 15 of trio basic from introduction to proficiency] trio free serial communication
Consul安装
Semiconductor devices (I) PN junction
Circleq of linked list
C # joint configuration with Halcon
【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl
随机推荐
Shell脚本基本语法
H264 (I) i/p/b frame gop/idr/ and other parameters
Take you to understand the working principle of lithium battery protection board
Explication de la procédure stockée pour SQL Server
Void* C is a carrier for realizing polymorphism
C language enhancement -- pointer
Beijing Winter Olympics opening ceremony display equipment record 3
Define in and define out
C WinForm [help interface - send email] - practice five
Screen record of the opening ceremony of the Beijing winter olympics 2
Imx6ull bare metal development learning 2- use C language to light LED indicator
Wifi-802.11 negotiation rate table
QEMU STM32 vscode debugging environment configuration
How to copy formatted notepad++ text?
Negative pressure generation of buck-boost circuit
Programming knowledge -- basis of C language
Connection mode - bridge and net
Fundamentals of C language
Brief discussion on Buck buck circuit
C#,数值计算(Numerical Recipes in C#),线性代数方程的求解,LU分解(LU Decomposition)源程序