当前位置:网站首页>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
边栏推荐
- Some tips for using source insight (solve the problem of selecting all)
- Semiconductor devices (III) FET
- Detailed explanation of SQL server stored procedures
- Network communication process
- My-basic application 1: introduction to my-basic parser
- Live555 push RTSP audio and video stream summary (I) cross compilation
- Live555 RTSP audio and video streaming summary (II) modify RTSP server streaming URL address
- [tutorial 19 of trio basic from introduction to proficiency] detailed introduction of trio as a slave station connecting to the third-party bus (anybus PROFIBUS DP...)
- Live555 push RTSP audio and video stream summary (III) flower screen problem caused by pushing H264 real-time stream
- UEFI development learning 4 - getting to know variable services
猜你喜欢
[trio basic tutorial 16 from introduction to proficiency] UDP communication test supplement
Shape template matching based on Halcon learning [vi] find_ mirror_ dies. Hdev routine
[tutorial 19 of trio basic from introduction to proficiency] detailed introduction of trio as a slave station connecting to the third-party bus (anybus PROFIBUS DP...)
Keil use details -- magic wand
Class of color image processing based on Halcon learning_ ndim_ norm. hdev
Circleq of linked list
Tailq of linked list
Measurement fitting based on Halcon learning [II] meaure_ pin. Hdev routine
Solutions to compilation warnings in Quartus II
My-basic application 2: my-basic installation and operation
随机推荐
Imx6ull bare metal development learning 1-assembly lit LED
Bootloader implementation of PIC MCU
C WinForm [display real-time time in the status bar] - practical exercise 1
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
动力电池UL2580测试项目包括哪些
Soem EtherCAT source code analysis II (list of known configuration information)
Solutions to compilation warnings in Quartus II
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
Management and use of DokuWiki (supplementary)
[trio basic from introduction to mastery tutorial XIV] trio realizes unit axis multi-color code capture
C # joint configuration with Halcon
My-basic application 1: introduction to my-basic parser
Carrier period, electrical speed, carrier period variation
How to define guid in AMI code
How to select conductive slip ring
Soem EtherCAT source code analysis attachment 1 (establishment of communication operation environment)
C language # and #
Working principle and type selection of common mode inductor
MySQL MHA high availability cluster
OC and OD gate circuit