stm32—GPIO操作(库函数)

发布者:水墨人生最新更新时间:2019-09-25 来源: eefocus关键字:stm32  GPIO操作  库函数 手机看文章 扫描二维码
随时随地手机看文章

GPIO的8种方式


       1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1

       2、带上拉输入GPIO_IPU——IO内部上拉电阻输入

       3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入

       4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电

       5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能

       6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的

       7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)

       8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)


下面是GPIO的初始化


  GPIO_InitTypeDef GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能端口时钟

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;             //端口配置

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //50M

  GPIO_Init(GPIOA, &GPIO_InitStructure);       //根据设定参数初始化GPIOA 


GPIO操作的函数

GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1);  //设置PA0--PA1高电平

GPIO_ResetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1);  //设置PA0--PA1低电平

GPIO_WriteBit(GPIOA,GPIO_Pin_3,1);  //设置PA3高电平

GPIO_WriteBit(GPIOA,GPIO_Pin_3,0);  //设置PA3低电平

 

GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)   //获取PA1引脚电平0或者1

关键字:stm32  GPIO操作  库函数 引用地址:stm32—GPIO操作(库函数)

上一篇:stm32笔记2-3 GPIO操作(库函数)
下一篇:stm32之GPIO配置及库函数学习笔记——以流水灯为例

推荐阅读最新更新时间:2024-11-13 14:21

建立STM32的工程步骤(版本1)
建立STM32的工程步骤(版本1):
[单片机]
建立<font color='red'>STM32</font>的工程步骤(版本1)
STM32-USART串口通信【USART和UART的区别】
USART简介 USART(Universal Synchronous/Asynchronous Receiver/Transmitter),即通用同步/异步串行接收/发送器。 所谓同步通信和异步通信的主要区别是前者有公共时钟,总线上的所有设备按统一的时序、统一的传输周期进行信息传输。后者没有公共时钟,没有固定的传输周期,采用应答方式通信。简单的说,“同步”就是发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 “异步”就是发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。异步通信发送方式下,在每一个字符的开始和结束分别加上开始位和停止位,以便使接收端能够正确地将每一个字符接收来。 我们用
[单片机]
STM32-USART串口通信【USART和UART的区别】
STM32自定义printf实现多串口互用
STM32 串口使用频繁的朋友可能知道一个问题,库自带的 USART_SendData 函数一次只能发送 1 Byte 字符 如果我们要输出一个带格式、带参数的串口数据就只能通过 sprintf 打印到一个临时数组,然后再使用一个for循环调用USART_SendData一个字符一个字符的输出,过程非常麻烦! 姜斌是一个非常怕麻烦的人所以这种方法无疑让我发疯!后来在原子(OpenEDV)那里购买了开发板拿到了例程。里面重定向了printf函数作为串口输出函数,有了这个函数之后就能够很轻松的参数输出,但问题就在这里我们串口1 串口2 都要带参数输出怎么办? 本次实验:自定义printf函数 实验数据来源: 配置usart
[单片机]
一文详解STM32端口复用及映射
复用 STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 哪些端口可以复用为什么,这个查表就可以了 2,如何进行端口复用? 比如AF1要复用到TIM1; 通过设置AFRL寄存器和AFRH寄存器 就可以AF1----- TIM1; 一组IO口有16个 GPIOAF0~15 AFRL负责低八位IO AFRH负责高八位IO 举例 除了ADC或者DAC配置为模拟之外,其他外设都要配置为复用 //完整版 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIO
[单片机]
一文详解<font color='red'>STM32</font>端口复用及映射
STM32的SysTick时钟源来自哪里?
STM32CubeMX中Cortex系统定时器(System Timer)选择1分频和8分频,为啥生成代码一样? 因为STM32CubeMX会启动SysTick作为延时(HAL_Delay)函数的时基,而SysTick作为Cortex内核的一部分,就会用到Cortex系统定时器。 那么,问题就来了SysTick时钟源来自哪里? 1、数据手册和STM32CubeMX时钟树 数据手册时钟树: STM32CubeMX时钟树: 你会发现:数据手册中的只有『/8』分频,而STM32CubeMX除了『/8』分频,还有『/1』分频。 2、SysTick时钟初始化代码 不管是使用标准外设库,还是HAL库,你初始化SysTick,都会调
[单片机]
<font color='red'>STM32</font>的SysTick时钟源来自哪里?
STM32单片机扩展下的IPUS SQPI PSRAM应用领域
PSRAM就是伪SRAM,内部的内存颗粒跟SDRAM的颗粒比较相似,但外部的接口跟SDRAM不同,不需要SDRAM那样复杂的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。 psram内部自带刷新机制。PSRAM也由初期的平行接口发展到串行接口,由SPI、Quad SPI (QPI) 和Octal SPI (OPI)几种串行接口,用于需要小型化的场合,能够提供带宽范围从100Mbps ~ 2.128Gbps的大范围。PSRAM容量有4Mb,8Mb,16Mb,32Mb,64Mb, 128Mb等等。 除了2G BB SiP,新的需求来自互联网语音流媒体数据的缓冲存储,如网络收音机、智能语音交互设备、智能语音交互机器
[单片机]
STM32--CAN总线应运
CAN 总线在控制领域使用的非常广泛,如今大多数CPU芯片外围都扩展CAN接口。本文重点介绍以STM32F103E系列芯片为基础介绍CAN 总线的使用方法。 1. 硬件基础 CAN总线工作需要两根数据线,RX和TX,即为输入总线和输出总线。一般CPU与外界通信需要接一个驱动芯片(这点很像UART接口),常用的CAN芯片主要有:SN65VHD230、PCA82C250T等,本系统使用SN65VHD230作为CAN接口芯片。而CPU提供的CAN接口为CAN_L和CAN_H。 2. 软件设计 在进行软件设计时,我们首先来看这样的一个结构体: typedef struct { uint32_t StdId;
[单片机]
stm32中断服务函数名称表速查
*参考启动文件 startup_stm32f10x_xl.s
[单片机]
<font color='red'>stm32</font>中断服务函数名称表速查
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved