1.0 STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出)
1)浮空输入_IN_FLOATING
2)带上拉输入_IPU
3)带下拉输入_IPD
4)模拟输入_AIN
5)开漏输出_OUT_OD
6)推挽输出_OUT_PP
7)复用功能的推挽输出_AF_PP
8)复用功能的开漏输出_AF_OD
1.1I/O口的输出模式下,有3种输出速度可选(2M,10M,50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
1.1.1对于串口,假如最大波特率只需115.2K,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。
1.1.2对于I2C接口,假如使用400K波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。
1.1.3对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO引脚速度。
1.2GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。
1.3在复位期间和刚复位后,复用功能未开启,I/O端口被设置成浮空输入模式。
1.4所有端口都有外部中断功能,为了使用外部中断线,端口必须配置成输入模式。
1.5GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。
2在STM32中如何配置片内外设使用的IO端口
一个外设经过 a.配置输入的时钟和 b.初始化后即被激活(开启);c.如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口d.再对外设进行详细配置。
对应到外设的输入输出功能有三种情况:
2.1:外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出。
2.2:外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。
2.3:ADC对应的管脚:配置管脚为模拟输入。
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将管脚配置成复用输出功能后,如果外设没有被激活,那么它的输出将不确定。
3通用IO端口(GPIO)初始化:
3.1 GPIO初始化
3.1.1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|B|C,ENABLE):使能APB2总线外设时钟
3.1.2 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|B|C,DISABLE):释放GPIO复位
3.2 配置各个PIN端口
3.3 GPIO初始化完成
关键字:STM32 IO口 配置
引用地址:
STM32的IO口如何配置
推荐阅读最新更新时间:2024-03-16 14:58
STM32启动文件的理解
; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; h Stack Configuration ; o Stack Size (in Bytes) 0x0-0xFFFFFFFF:8 ; /h Stack_Size EQU 0x00000400 ;1024个字节 ;类似于define AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size ;给堆栈分配1024个字节 __ini
[单片机]
nxp_lpc11xx系统初始化配置学习
/********************************************************************************************************* * @file system_LPC11xx.c * @brief CMSIS Cortex-M0 Device Peripheral Access Layer Source File * for the NXP LPC11xx Device Series * @version V1.00 * @date 17. November 2009 * * @note * C
[单片机]
学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 当初是参考开发的里子写的一直对GPIOD或上 RCC_APB2Periph_AFIO 这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能对跟我一样的新手有所帮助吧o( _ )o... STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特
[单片机]
Stm32待机模式的进入与唤醒
1.基础介绍 1-1:单片机的“低功耗模式”,像是手机的待机模式,不同于正常运行模式,处于一种省电省资源的状态 1-2:在运行情况下,HCLK为cpu提供时钟,cortex-m3内核执行程序的代码,如果处于中断事件的等待时,可以进入低功耗模式用来节省资源等 1-3:STM32一共有着3个低功耗模式 (1)睡眠模式(cm3内核停止,外设时钟等依旧运行) (2)停止模式(所有的时钟) (3)待机模式(1.8V内核电源关闭) 1-4:具体介绍(引自正点原子参考手册) 2.配置方式 2-1:进入待机模式函数 配置时钟+设置唤醒源+待机模式设置 void Sys_Standby(void) {
[单片机]
基于STM32的PCL6045B开发体会
上两个月做了个关于尿残渣的新项目,用到了电机驱动芯片PCL6045BL。这个系统方案有一个20余年工作经验的老工程师提出来,主要采用的是STM32操作PCL6045,进而控制多轴电机运动。 于是公司从每个不同项目组抽选人员组成了一个团队。本人负责软件部分,负责编写驱动程序和调试电路板。 全新项目,有一定挑战性。经过分析,决定采用STM32总线方式(FSMC)驱动PCL6045B。对比FSMC的四种总线操作时序和PCL6045B操作时序。认为应该选用STM32的PCCARD模式操作。从数据库中查找了一些文献资料,就开干起来了。 两名硬件工程师按我的需求设计好硬件电路板。 接下来分成以下几个步骤进行: 首先就是建立通讯。让ARM能跟P
[单片机]
STM32——ARM与STM32之间的联系
ARM与STM32之间的联系 stm32是基于ARM内核的一种控制器,是包含与被包含的关系。 ARM(STM32)
[单片机]
一种基于STM32的心电采集仪设计方案
如今,心血管类疾病已经成为威胁人类身体健康的重要疾病之一,而清晰有效的心电图为诊断这类疾病提供了依据,心电采集电路是心电采集仪的关键部分,心电信号属于微弱信号,其频率范围在0.03~100 Hz之间,幅度在0~5 mV之间,同时心电信号还掺杂有大量的干扰信号,因此,设计良好的滤波电路和选择合适的控制器是得到有效心电信号的关键。基于此,本文设计了以STM32为控制核心,AD620和OP07为模拟前端的心电采集仪,本设计简单实用,噪声干扰得到了有效抑制。 1 总体设计方案 心电采集包括模拟采集和数字处理两部分,本设计通过AgCl电极和三导联线心电采集线采集人体心电信号,通过前置放大电路,带通滤波电路,50 Hz双T陷波后
[单片机]
如何用STM32CubeIDE软件实现STM32外部中断
本文用STM32CubeIDE软件实现STM32外部中断实例。 新建工程 “File”-“New”-“STM32 Project”。 输入芯片型号STM32F103ZE。 选择相应封装,下一步。 填写项目名,选择工程位置,下一步。 配置时钟、调试模式 选择高速外部时钟。 HCLK总线时钟处输入72,回车,配置使用最高时钟频率。 调试模式选择串行,方便下载程序。 配置管脚外设 本实例中用到了LED1与KEY_LEFT,找到相应电路图。 可见LED1对应PC0管脚,低电平点亮。按键K1对应PE2管脚,低电平有效。 PC0配置为GPIO_Output,GPIO输出模式 PE2配置为GPIO_EX TI 2,GPIO中断线2。 对G
[单片机]