STM32库函数说明及示例
- 格式:docx
- 大小:20.00 KB
- 文档页数:5
STM32大小端转换函数在介绍STM32大小端转换函数之前,首先我们需要了解什么是大小端(Endianness)。
什么是大小端(Endianness)?在计算机系统中,字节序(Byte Order)是指多字节数据在内存中存储时的顺序。
由于内存以字节为单位进行组织,因此多字节数据(如整数、浮点数等)在内存中存储时需要按照某种顺序进行排列。
常见的字节序有两种,分别是大端序(Big-endian)和小端序(Little-endian)。
•大端序:将高位字节存储在低地址,低位字节存储在高地址。
例如,十六进制整数0x12345678在大端序存储中为0x12 0x34 0x56 0x78。
•小端序:将低位字节存储在低地址,高位字节存储在高地址。
例如,十六进制整数0x12345678在小端序存储中为0x78 0x56 0x34 0x12。
不同的处理器架构使用的字节序可能不同,因此在进行数据交换或者跨平台通信时,需要进行大小端的转换。
STM32大小端转换函数在STM32系列的微控制器中,提供了一些用于进行大小端转换的特定函数。
这些函数可以帮助开发人员在不同的字节序之间进行转换,以满足特定的需求。
STM32大小端转换函数主要包括以下几个:1.htons():将16位(2字节)主机字节顺序转换为网络字节顺序(大端序)。
2.htonl():将32位(4字节)主机字节顺序转换为网络字节顺序(大端序)。
3.ntohs():将16位(2字节)网络字节顺序(大端序)转换为主机字节顺序。
4.ntohl():将32位(4字节)网络字节顺序(大端序)转换为主机字节顺序。
下面分别详细介绍这几个函数的定义、用途和工作方式。
1. htons()函数定义:uint16_t htons(uint16_t hostshort);用途:htons()函数用于将16位主机字节顺序的数据转换为网络字节顺序(大端序)的数据。
工作方式:htons()函数接受一个参数hostshort,该参数是一个16位的整数,表示主机字节顺序的数据。
stm32串口数据读取函数STM32是一款广泛应用于嵌入式系统的微控制器,具有强大的性能和丰富的外设资源。
其中,串口是一种常用的通信接口,用于与其他设备进行数据交换。
本文将介绍如何使用STM32串口数据读取函数进行数据接收。
一、STM32串口简介在嵌入式系统中,串口是一种基本的通信方式,通过串口可以实现与其他设备的数据交换。
STM32提供了多个串口接口,如USART、UART等,可以满足不同应用的需求。
二、串口数据读取函数在STM32中,串口数据读取函数主要通过读取串口接收缓冲区来获取数据。
根据不同的串口接口,使用不同的函数进行数据读取。
1. USART串口数据读取函数USART串口是一种全双工的串口接口,可以同时进行数据的发送和接收。
在STM32中,可以使用HAL库提供的函数来实现USART串口数据的读取。
需要初始化串口并开启接收中断。
接着,在中断回调函数中,使用HAL_UART_Receive函数进行数据的读取。
该函数需要传入串口句柄、数据缓冲区和数据长度作为参数,可以实现指定长度的数据读取。
2. UART串口数据读取函数UART串口是一种半双工的串口接口,只能进行数据的发送或接收。
与USART串口相比,UART串口的读取函数较为简单。
在STM32中,可以使用HAL库提供的函数来实现UART串口数据的读取。
使用HAL_UART_Receive函数进行数据的读取,该函数需要传入串口句柄、数据缓冲区和数据长度作为参数,可以实现指定长度的数据读取。
三、应用实例以下是一个使用USART串口读取数据的示例:```c#include "stm32f4xx.h"#include "stm32f4xx_hal.h"#define BUFFER_SIZE 10UART_HandleTypeDef huart;uint8_t rx_buffer[BUFFER_SIZE];void USART1_IRQHandler(void){HAL_UART_IRQHandler(&huart);}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if (huart->Instance == USART1){// 数据读取完成后的处理操作}}int main(void){HAL_Init();SystemClock_Config();huart.Instance = USART1;huart.Init.BaudRate = 115200;huart.Init.WordLength = UART_WORDLENGTH_8B;huart.Init.StopBits = UART_STOPBITS_1;huart.Init.Parity = UART_PARITY_NONE;huart.Init.Mode = UART_MODE_RX;huart.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart.Init.OverSampling = UART_OVERSAMPLING_16;if (HAL_UART_Init(&huart) != HAL_OK){// 串口初始化失败}HAL_UART_Receive_IT(&huart, rx_buffer, BUFFER_SIZE);while (1){// 主程序其他操作}}```在上述示例中,首先进行了串口的初始化配置,然后开启了串口的接收中断。
stm32标准库函数手册STM32标准库函数是一种由ST公司推出的一套用于STM32微控制器编程的开发工具,它能够帮助开发者快速地进行芯片的开发、调试和测试。
本文将对STM32标准库函数进行详细的介绍,并提供中文手册,帮助开发者更好地掌握这个工具。
一、STM32标准库函数概述STM32标准库函数是一套由ST公司提供的软件库,包括了一系列用于STM32微控制器的常用功能函数,例如GPIO、USART、SPI、I2C等,这些函数可以用于快速实现各种应用。
同时,ST公司也提供了一些示例代码,可以方便开发者进行学习和参考。
STM32标准库函数可以与各种不同的开发环境集成,例如Keil、IAR、STM32Cube等,方便开发者进行开发。
在使用STM32标准库函数时,可以通过库函数的方式来调用硬件资源,比如设置GPIO口的状态、使用USART进行通信、配置外部中断等。
1. 系统初始化函数:这些函数包括了芯片系统时钟的初始化、中断优先级的设置、时钟输出的配置等,必须在主函数前进行调用。
2. GPIO和外部中断函数:这些函数用于对GPIO口状态的配置和读取,以及对外部中断的控制。
3. USART函数:这些函数用于对串口进行配置和读写操作。
8. DAC函数:这些函数用于对模拟量进行输出。
以下是STM32标准库函数的中文手册,包含了常用函数的介绍和使用方法。
1. 系统初始化函数1.1. RCC配置函数函数原型:void RCC_Configuration(void)函数功能:配置STM32的时钟源和时钟分频系数。
函数说明:在函数内部,首先对PLL时钟源进行配置,然后根据系统时钟的需要选择PLL时钟的分频系数,然后对AHB、APB1、APB2的分频系数进行配置。
最后,开启相应时钟使能位。
函数功能:对STM32的中断向量表进行重定位,并设置各个中断的优先级。
函数说明:中断向量表的地址是由SCB_VTOR寄存器来控制的。
stm32hal库标准例程STMicroelectronics提供了一套强大的STM32HAL库,可以帮助开发人员轻松地编写高效、可靠的STM32微控制器程序。
该库提供了丰富的函数和示例代码,本文将介绍一些常见的STM32HAL库标准例程及其相关内容。
首先,我们来看看GPIO的例程。
GPIO是通用输入输出端口,用于连接外部设备和微控制器。
在STM32HAL库中,对GPIO的操作非常简单。
例如,可以使用以下代码将GPIO配置为输出模式,并将引脚置高:```GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.Pin = GPIO_PIN_0;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_PULLUP;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);```这段代码首先定义了一个GPIO_InitTypeDef的结构体,用于配置GPIO的参数。
然后,通过指定引脚的标识符、模式和上拉电阻,可以初始化GPIOA引脚。
最后,可以使用HAL_GPIO_WritePin函数将引脚状态设置为高电平。
接下来,让我们看看UART(通用异步收发器)的例程。
UART是一种广泛应用的串行通信接口,用于实现与其他设备的可靠通信。
使用STM32HAL库,可以轻松地配置和使用UART接口。
以下是一个配置UART的示例代码:```UART_HandleTypeDef uart_handle;uart_handle.Instance = USART2;uart_handle.Init.BaudRate = 115200;uart_handle.Init.WordLength = UART_WORDLENGTH_8B; uart_handle.Init.StopBits = UART_STOPBITS_1;uart_handle.Init.Parity = UART_PARITY_NONE;uart_handle.Init.Mode = UART_MODE_TX_RX;uart_handle.Init.HwFlowCtl = UART_HWCONTROL_NONE; uart_handle.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&uart_handle);```这段代码初始化了一个UART_HandleTypeDef结构体,然后通过指定USART2、波特率、数据位、停止位、校验位等参数,可以配置UART接口。
stm32f103c8t6 tf卡简单的读写函数STM32F103C8T6是一款常用的微控制器,它内部集成了SDIO接口,可以方便地与TF卡进行数据读写。
在本文中,我将介绍一些简单的读写函数,以帮助您在STM32F103C8T6上使用TF卡。
下面是相关内容:一、TF卡介绍TF卡(T-Flash卡)是一种袖珍型存储卡,广泛应用于移动设备中。
它的体积小、价格低廉,并且容量可扩展。
在STM32F103C8T6上使用TF卡,可以实现大量数据存储,方便后续的读写操作。
二、初始化函数在使用TF卡之前,我们需要进行初始化操作。
以下是一个简单的TF卡初始化函数示例:```c#include "stm32f10x.h"void TF_Card_Init(){// 初始化SPI接口RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);SPI_InitTypeDef SPI_InitStructure;SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;SPI_InitStructure.SPI_Mode = SPI_Mode_Master;SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;// 更多SPI参数配置,如速率、时钟极性等// ...SPI_Init(SPI1, &SPI_InitStructure);SPI_Cmd(SPI1, ENABLE);// 等待TF卡初始化完成while(TF_Card_SendCommand(CMD0, 0) != 0x01);}```该函数使用了STM32F10x库,通过SPI1接口与TF卡进行通信。
在实际使用中,您需要根据TF卡的具体规格进行参数的设置和修改。
三、读取函数TF卡的读取操作可以通过发送命令和读取数据实现。
stm32的tcp接收函数的用法一、引言TCP(传输控制协议)是一种面向连接的协议,用于在主机之间进行可靠的数据传输。
在嵌入式系统中,使用TCP协议可以方便地实现远程控制、数据采集等功能。
本文将介绍在STM32平台上如何使用TCP 接收函数。
二、准备工作在开始使用TCP接收函数之前,需要先了解TCP通信的基本原理和STM32的TCP库。
TCP通信涉及到socket编程,STM32的TCP库提供了简单易用的API,可以方便地实现TCP通信。
三、TCP接收函数的实现1.初始化TCPsocket:在使用TCP接收函数之前,需要先初始化TCPsocket。
需要指定本地IP地址、端口号和远程IP地址、端口号等信息。
2.建立连接:使用TCP库中的函数建立连接,将本地socket和远程socket连接起来。
3.接收数据:使用TCP库中的函数接收来自远程的数据。
在STM32中,可以使用循环来不断接收数据,直到接收到结束信号或超时。
4.处理数据:接收到数据后,需要对数据进行处理。
可以将数据存储在缓冲区中,然后根据需要进行解析和处理。
5.关闭连接:在处理完数据后,需要关闭连接。
可以使用TCP库中的函数来关闭socket,释放资源。
四、示例代码以下是一个简单的示例代码,用于展示如何在STM32上使用TCP 接收函数:```c#include"tcp_client.h"//包含TCP库的头文件voidtcp_receive_func(void){//初始化TCPsockettcp_socket_t*tcp_socket=tcp_init_client();if(tcp_socket==NULL){//初始化失败,处理错误}//指定本地IP地址、端口号和远程IP地址、端口号等信息tcp_connect(tcp_socket,IP_ADDR_ANY,SERVER_PORT,REMOTE_IP_ ADDR,REMOTE_PORT);//循环接收数据while(1){uint8_tbuffer[MAX_BUFFER_SIZE];//存储数据的缓冲区uint32_tbytes_received=tcp_receive(tcp_socket,buffer,MAX_ BUFFER_SIZE);//接收数据if(bytes_received>0){//处理接收到的数据//...}else{//超时或关闭连接,处理错误}}//关闭连接tcp_disconnect(tcp_socket);tcp_deinit_client(tcp_socket);//释放资源}```以上代码仅供参考,具体实现还需要根据实际需求进行修改和完善。
STM32G030标准库例程一、概述1. STM32G030是意法半导体推出的一款低功耗高性能的32位微控制器,适用于各种应用领域。
为了方便开发者使用STM32G030微控制器,意法半导体提供了丰富的标准库例程,帮助开发者快速上手并进行应用开发。
2. 本文将介绍STM32G030标准库例程的基本内容和使用方法,帮助开发者更好地理解和应用STM32G030微控制器。
二、STM32G030标准库概述1. STM32G030标准库是意法半导体为STM32G030微控制器提供的一套软件开发工具,包括了丰富的例程和库函数。
2. 标准库例程包括了常见的GPIO控制、定时器配置、串口通信、ADC采样等功能的示例代码,可以帮助开发者快速了解和使用STM32G030微控制器的各项功能。
3. 通过标准库例程,开发者可以更加高效地进行应用开发,节省大量的开发时间和精力。
三、STM32G030标准库例程的基本使用方法1. 下载和安装STM32CubeMX软件,创建一个新的工程,并选择STM32G030微控制器作为目标芯片。
2. 在CubeMX中进行引脚配置、时钟配置等初始化设置,并生成初始化代码。
3. 在生成的初始化代码中,包含了一些基本的示例函数,可以作为STM32G030标准库例程的基础,开发者可以根据需要进行修改和扩展。
4. 根据具体的应用需求,选择合适的标准库例程进行参考和借鉴,加速应用开发的过程。
四、STM32G030标准库例程的详细内容1. GPIO控制a. GPIO初始化:介绍了如何配置STM32G030的GPIO引脚,包括输入模式和输出模式的配置,以及中断触发模式的设置。
b. GPIO操作:演示了如何使用标准库例程完成GPIO引脚的输入输出操作,包括了读取输入状态、设置输出状态、使用中断等功能。
2. 定时器配置a. 定时器初始化:介绍了如何初始化STM32G030的定时器,包括时钟源的选择、预分频器和计数器的配置等。
stm32hal库函数说明手册摘要:一、STM32HAL 库概述二、STM32HAL 库常用函数说明1.GPIO 操作相关函数2.备份寄存器相关函数3.CAN 控制器相关函数4.局域网模块相关函数5.DMA 直接内存存取控制器相关函数6.外部中断事件控制器相关函数7.闪存存储器相关函数8.通用输入输出相关函数9.内部集成电路相关函数10.独立看门狗相关函数11.嵌套中断向量列表控制器相关函数12.电源/功耗控制相关函数13.复位与时钟控制器相关函数正文:一、STM32HAL 库概述STM32HAL 库是基于STM32 微控制器的硬件抽象层(HAL)库,它为开发者提供了一系列易于使用的函数,以便在STM32 上实现各种外设的操作。
STM32HAL 库大大简化了开发过程,降低了开发难度,使得开发者能够更加高效地开发出功能丰富的应用程序。
本手册主要对STM32HAL 库中的常用函数进行说明,帮助开发者快速掌握库函数的使用方法。
二、STM32HAL 库常用函数说明1.GPIO 操作相关函数GPIO(通用输入输出)是STM32 微控制器中最常用的外设之一。
以下是一些常用的GPIO 操作函数:- halgpiodeinit:GPIO 初始化函数,用于配置GPIO 的引脚模式、输出类型、速度等。
- halgpiowrite:用于设置或清除指定GPIO 引脚的状态。
- halgpioread:用于读取指定GPIO 引脚的状态。
- halgpioexticallback:中断回调函数,用于处理GPIO 外部中断事件。
2.备份寄存器相关函数备份寄存器用于在系统复位或断电时保存一些关键数据。
以下是一些常用的备份寄存器操作函数:- hal_bkp_init:备份寄存器初始化函数。
- hal_bkp_write:向备份寄存器写入数据。
- hal_bkp_read:从备份寄存器读取数据。
3.CAN 控制器相关函数CAN(控制器局域网)是一种常用于车辆和工业控制领域的通信协议。
stm32 库函数pa0的使用方法如何使用STM32库函数中的PA0引脚。
在STM32的开发中,使用库函数是一种比较方便的方法。
STM32库函数提供了丰富的功能,方便开发者进行开发。
在具体使用时,我们可以根据需要选择库函数中提供的功能。
本文将介绍如何使用库函数中的PA0引脚。
一、PA0引脚的概述PA0引脚是STM32系列中的一个GPIO引脚,它的PID号为0。
PA0引脚连接的是微控制器的GPIO端口A的第0个引脚。
在STM32的使用中,PA0引脚可以连接各种不同的外设,例如按键、LED等。
由于这些外设往往只是对PA0引脚的电平状态进行读取或控制,因此使用PA0引脚所需的代码比较简单。
二、获取用户按键输入PA0引脚常用于获取用户的按键输入,我们可以使用库函数的GPIO_ReadInputDataBit()函数来读取PA0引脚的状态。
而在代码的编写过程中,主要有以下几个步骤:1.初始化GPIO首先,我们需要对PA0引脚进行初始化。
在初始化时,我们需要设置GPIO模式、GPIO速度、GPIO的输入输出类型、GPIO上拉/下拉等参数。
初始化PA0引脚为输入模式GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);使能GPIOA时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;选择PA0引脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;设置为输入模式,并开启上拉GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);初始化GPIO2.读取GPIO状态初始化之后,我们就可以使用GPIO_ReadInputDataBit()函数来读取PA0引脚的状态。
STM32库函数说明及示例(版本V1.4.0) ----第一篇:GPIO库 相关术语说明: gpio:通用输入输出接口 gpio管脚:一个io管脚,这个管脚可以有多个配置。在库函数中用GPIO_Pin_1这样的宏定义表示 gpio端口(gpio分组):一组gpio管脚的信息。在库函数中用宏定义GPIOA GPIOB等表
示
1 gpio库说明 库文件名:stm32f4xx_gpio.c 文档提示翻译: 如何使用这个驱动 (1) 使用RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE)函数使能GPIO的AHB总线时钟。
(2) 使用GPIO_Init()函数对每个引脚进行四种可能的配置 《1》 输入状态:Floating(浮空), Pull-up(上拉), Pull-down(下拉) 《2》 输出状态:Push-Pull (上拉下拉)(Pull-up(上拉), Pull-down(下拉) or no Pull(不上拉也不下拉)),Open Drain(开漏) (Pull-up(上拉), Pull-down(下拉) or no Pull(不上拉也不下拉)),在输出模式,速度配置成2MHZ,25MHZ,50MHZ和100MHZ. 《3》 第二功能:上拉下拉和开漏 《4》 模拟:当一个管脚被用作ADC通道或者DAC输出的时候,需要配置成此模式 (3) 外设的第二功能: 《1》 在ADC和DAC模式,使用GPIO_InitStruct->GPIO_Mode = GPIO_Mode_AN把需要的管脚配置成模拟模式 《2》 对于其它的管脚(定时器,串口等): l 使用GPIO_PinAFConfig()函数把管脚和需要的第二功能进行连接 l 使用GPIO_InitStruct->GPIO_Mode = GPIO_Mode_AF把需要的管脚配置成第二功能模式 l 通过成员变量GPIO_PuPd, GPIO_OType and GPIO_Speed选择类型,上拉下拉和输出速度 l 调用函数GPIO_Init()
(4) 在输入模式,使用函数GPIO_ReadInputDataBit()得到配置好管脚的电平 (5) 在输出模式,使用函数GPIO_SetBits()/GPIO_ResetBits()设置配置好IO的高低电平 (6) 在复位过程和刚刚复位后,第二功能是无效的,GPIO被配置成了输入浮空模式(JTAG管脚除外) (7) 当LSE振荡器关闭的时候,LSE振荡器管脚OSC32_IN和OSC32_OUT可以作为通过IO来使用(分别用PC14和PC15表示)。LSE的优先级高于GPIO函数 (8) 当HSE振荡器关闭的时候,HSE振荡器管脚OSC_IN和OSC_OUT可以作为通用IO(PH0,PH1)来使用。HSE的优先级高于GPIO函数。
2 具体函数说明 初始化和配置相关函数 1. voidGPIO_DeInit(GPIO_TypeDef* GPIOx) 函数解释:gpio的反初始化函数,该函数的作用是把GPIO相关的寄存器配置成上电复位后的默认状态,在第一次初始化前或者不再使用某一个接口后可以调用该函数。 函数参数说明:GPIOx:gpio的分组,如GPIOA GPIOB GPIOC等的宏定义(这些宏定义在头文件stm32f4xx.h中,由厂家写好,我们直接使用即可)
2. voidGPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef*GPIO_InitStruct) 函数解释:gpio的初始化函数,该函数的作用是对io进行初始化。 函数参数说明:(1)GPIOx:gpio的分组,如GPIOA GPIOB GPIOC等的宏定义。 (2)GPIO_InitStruct:gpio的初始化相关结构体。该结构体里面的成员变量决定了我们具体的初始化参数。以下进行说明: l GPIO_Pin:指定具体的IO脚,如GPIO_Pin_0 GPIO_Pin_1这样的宏定义,这些宏由厂
家写好,我们直接使用即可。 l GPIO_Mode:指定gpio的模式,有以下四种模式: GPIO_Mode_IN(输入),GPIO_Mode_OUT(输出),GPIO_Mode_AF(第二功能),GPIO_Mode_AN(模拟),可以直接使用这四种宏定义。 l GPIO_Speed:指定IO的最快翻转速度,也就是当使用IO产生频率(如PWM)的最快速度。有以下四种速度的配置: GPIO_Low_Speed(低速),GPIO_Medium_Speed(中等速度),GPIO_Fast_Speed(快
速),GPIO_High_Speed(高速),可以直接使用这四种宏定义。 l GPIO_OType:指定选择管脚的输出类型,有以下两种配置: GPIO_OType_PP(推挽方式输出),GPIO_OType_OD(开漏方式输出),可以直接使用这两种宏定义。 Tips: 推挽输出:推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。推挽方式的驱动力更大。 开漏输出:开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。 l GPIO_PuPd。指定选择管脚的上拉和下拉模式。有如下三种配置: GPIO_PuPd_NOPULL(不上拉也不下拉),GPIO_PuPd_UP(上拉),GPIO_PuPd_DOWN(下拉)。Tips:这些都是IO的内部上拉或者下拉模式,也可以接上拉和下拉电阻通过硬件进行外部上拉和外部下拉。
3. voidGPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct) 函数解释:gpio结构体的初始化。对GPIO_InitStruct结构体进行默认配置 函数参数说明:GPIO_InitStruct,直接传入该结构体的指针,在该函数内会对结构体进行初始化。
4. voidGPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 函数解释:锁定gpio的寄存器,锁定的寄存器是GPIOx_MODER,GPIOx_OTYPER, GPIOx_OSPEEDR,GPIOx_PUPDR, GPIOx_AFRL and GPIOx_AFRH。在下一次复位前,被锁
定的管脚不能被修改。 函数参数说明:GPIOx:gpio的分组(如GPIOA,GPIOB等)。GPIO_Pin:具体的gpio管脚(如GPIO_Pin_0 GPIO_Pin_1这样的宏定义)
GPIO的读写函数 1. uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_tGPIO_Pin) 函数解释:读取io输入管脚的值 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_Pin:具体的gpio管脚 函数返回值说明:输入管脚的值Bit_SET(高电平) Bit_RESET(低电平)
2. uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) 函数解释:读取输入io数据,该函数用于读取一个IO分组的所有数据 函数参数说明:GPIOx:gpio的分组/gpio端口 函数返回值说明:一个io端口的所有数据 (输入状态)
3. uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_tGPIO_Pin) 函数解释:读取io输出管脚的值 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_Pin:具体的gpio管脚 函数返回值说明:输出管脚的值Bit_SET(高电平) Bit_RESET(低电平)
4. uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx) 函数解释:读取输出io分组/端口的值 函数参数说明:GPIOx:gpio的分组/gpio端口 函数返回值说明:一个io端口的所有数据 (输出状态)
5. voidGPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 函数解释:对io管脚进行置位(输出高电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_Pin:具体的gpio管脚或者是io管脚的组合
6. voidGPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 函数解释:对io管脚进行复位(输出低电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_Pin:具体的gpio管脚或者是io管脚的组合
7. voidGPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitActionBitVal) 函数解释:对某一位进行写入操作 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_Pin:具体的gpio管脚;BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)