STM32--GPIO口功能以及寄存器介绍

发布者:Qingliu2022最新更新时间:2019-03-09 来源: eefocus关键字:STM32  GPIO口  寄存器 手机看文章 扫描二维码
随时随地手机看文章

GPIO口功能介绍


每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL【控制端口0~7】,GPIOx_CRH【如有,控制端口8~15】),


两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),(直接设置输入输出的状态,高低电平(0,1))


一个32位置位/复位寄存器(GPIOx_BSRR),(高16位清零,低16位置1,均为1时有效,0不影响)


一个16位复位寄存器(GPIOx_BRR) ,(只清零,使用低16位)


一个32位锁定寄存器(GPIOx_LCKR)。(锁键)


如图为一个端口的基本结构,(具体的每个寄存器位的定义,请一定参考《STM32中文参考手册》)


关键字:STM32  GPIO口  寄存器 引用地址:STM32--GPIO口功能以及寄存器介绍

上一篇:STM32 IAP APP 启动过程
下一篇:stm32踩内存的问题

推荐阅读最新更新时间:2024-03-16 16:25

stm32标准外设库使用详解
下载代码 stm32标准外设库是stm32全系列芯片的外设驱动,有了它可以大大加速我们开发stm32。 首先从st公司的网站下载最新的stm32标准外设库,写本文时最新的版本是V3.5.0。 解压该zip文件,得到如下文件夹和文件 STM32F10x_StdPeriph_Lib_V3.5.0\ _htmresc Libraries Project Utilities Release_Notes.html stm32f10x_stdperiph_lib_um.chm 其中Libraries包含库的源代码,Project包含stm32各个外设的使用范例和一个工程模板,Utilities是使
[单片机]
STM32开发环境(MDK)搭建及第一个项目工程
一、开发环境搭建 1.1 下载IDE 目前STM32开发常用的IDE有IAR、MDK等,这里我挑选MDK。如果你是IAR的爱好者,那么这篇文章可能不适合你。 MDK官方下载地址,目前最新版本是5.26。 官网下载页面入口: 下载需要填写个人信息: 点击下载即可: 从官网下载会比较慢,为了方便大家下载,有需要的同学可以到我的网盘上获取。 1.2 IDE安装 可以配置安装路径。默认安装在C盘根目录下。 填写用户信息。随便写,不影响使用。 一路Next,最后点击Finish。 弹出一个包安装的界面。如果你要开发的芯片MDK不支持,需要通过这个Pack Installer去安装相应的包,这里先关闭忽略掉。
[单片机]
<font color='red'>STM32</font>开发环境(MDK)搭建及第一个项目工程
STM32 ADC与DMA多通道处理
#define ADC1_DR_Address ((uint32_t)0x4001244C)//ADC1 DR寄存器基地址 DMA_InitTypeDef DMA_InitStructure; //DMA ADC_InitTypeDef ADC_InitStructure; //ADC #define ADC_CH 2 //通道数 #define ADC_num 10 //采集点数 vu16 After_filter ; //用来存放求平均值之后的结果 vu16 ADCConvertedValue ;//AD数据缓存 /*****************************************************
[单片机]
stm32学习笔记 系统时钟
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍, 但是其输出频率最大不得超过72MHz。 其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外, 实时时钟RTC的时钟源还可以选择LSE
[单片机]
<font color='red'>stm32</font>学习笔记 系统时钟
STM32 六步PWM输出
之前说过STM32的只有两个高级定时器TIM1与TIM8才能互补输出。这里我们说的六步PWM输出要用到互补输出,所以只有TIM1与TIM8才能实现。什么是六步PWM输出?下面就来解释下。当一个定时器需要互补输出的时候,可以预先设置输出比较模式位OCxM(向TIM_OCMode_Timing,TIM_OCMode_PWM1等)、通道的使能位CCxE、互补通道的使能位CCxNE,然后当发生COM换相事件时,就可在中断函数中将刚预先设置位设置好,这样的话,就决定了下一步的配置了。这里之所以说是六步,其实并不是说一定要六步,你完全可以自己决定要设置几步配置,但是六步配置最为典型,所以我这里只讲六步配置。六步PWM输出非常适合控制机器人,因为
[单片机]
一文解析STM32内存管理和堆栈的认知与理解
  本文主要介绍了STM32内存管理和堆栈的认知与理解,首先介绍的是内存管理的实现原理及分配、释放原理,其次介绍了stm32的存储器结构,最后阐述了堆栈的认知与理解,具体的跟随小编一起来了解一下吧。   STM32内存管理详解   内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种,他们其实最终都是要实现 2 个函数: malloc 和 free; malloc 函数用于内存申请, free 函数用于内存释放。   内存管理的实现原理      从上图可以看出,分块式内存管理由内存池和内存管理表两部分组成。内存
[单片机]
一文解析<font color='red'>STM32</font>内存管理和堆栈的认知与理解
STM32大小端模式与堆栈及其增长方向分析
栈增长和大端/小端问题是和CPU相关的两个问题. 1,首先来看:栈(STACK)的问题. 函数的局部变量,都是存放在 栈 里面,栈的英文是:STACK.STACK的大小,我们可以在stm32的启动文件里面设置,以 战舰 stm32 开发板 为例,在startup_stm32f10x_hd.s里面,开头就有: Stack_Size EQU 0x00000800 表示栈大小是0X800,也就是2048字节.这样,CPU处理任务的时候,函数局部变量做多可占用的大小就是:2048字节,注意:是所有在处理的函数,包括函数嵌套,递归,等等,都是从这个 栈 里面,来分配的. 所以,如果一个函数的局部变量过多,比如在函数里面定义一个u8
[单片机]
<font color='red'>STM32</font>大小端模式与堆栈及其增长方向分析
STM32学习笔记(一)---GPIO口的操作
1.新建一个工程模板 2.GPIO口操作的步骤 (1)声明一个结构体 GPIO_InitTypeDef GPIO_InitStructure; 这个结构体中包括GPIO_Pin 、GPIO_Mode、GPIO_Speed 。 (2)端口使能: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); 调用上述函数,函数参数第一个是你要使能端口,第二个是ENABLE,就是使能。如果其中用到几个端口,在第一个参数中 用或运算“|”连接,就可以同时声明几个端口。 (3) GPIO_InitStructure.GPIO_Pin 端口配置
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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