STM32中每组由16个IO,不同的型号IO分组不一样,比如STM32F407ZGT6 一共有7组IO口, 每组IO口有16个IO, 一共16X7=112个IO,外加2个PH0和PH1,一共114个IO口。分别是GPIOA,GPIOB---GPIOG,外加2个PH0和PH1
一、GPIO介绍
GPIO:就是一个引脚作为输入或者输出。
GPIO的八种工作模式:输入输出是相对于CPU,四种输入、四种输出模式及四种输出最大速度
输入:外部数据输入到开发板
输出:开发板的数据输出到外部设备
(1) GPIO_Mode_AIN 模拟输入
将IO口作为模拟输入接口,输入的可能是变化的值,接收外部的模拟信号输入
(2) GPIO_Mode_IN_FLOATING 浮空输入
复位上电的时候,引脚不确定电平的高低
(3) GPIO_Mode_IPD 下拉输入
将IO口作为通用输入接口,只能输入0或者1,强制下拉,一般是为了输入强低电平
(4) GPIO_Mode_IPU 上拉输入
将IO口作为通用输入接口,只能输入0或者1,强制下拉,一般是为了输入强高电平
(5) GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)
要得到高电平状态需要上拉电阻才行,可以作为电流型驱动
(6) GPIO_Mode_AF_OD 开漏复用输出(带上拉或者下拉)
复用功能,不只是单纯的作为输入输出,可以作为其他功能的引脚:串口、I2C、SPI,要得到高电平状态需要上拉电阻才行
(7) GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)
——IO 输出 0-接 GND, IO 输出 1 -接 VCC,读输入值是未知的,输出0,就一定是0,输出1就一定是1
(8) GPIO_Mode_AF_PP 推挽复用输出(带上拉或者下拉)
复用功能,不只是单纯的作为输入输出,可以作为其他功能的引脚:串口、I2C、SPI,输出0,就一定是0,输出1就一定是1
二、GPIO四种最大输出速度:2MHZ、25MHZ、50MHZ、100MHZ
三、M3和M4的IO口的基本结构及区别:上下拉电阻的所在位置的区别
关键字:GPIO 工作模式 stm32
引用地址:
GPIO工作模式详解
推荐阅读最新更新时间:2024-11-13 18:06
STM32自学笔记 零死角玩转STM32
工程师经验手记例说STM32 将由浅入深,带领大家进入STM32的世界。本书总共分为3篇:第1篇为硬件篇,主要介绍实验平台;第2篇为软件篇,主要介绍STM32开发软件的使用以及一些下载调试的技巧,并详细地介绍了几个常用的系统文件(程序);第3篇为实战篇,通过38个实例(绝大部分是直接操作寄存器完成的)带领大家一步步深入STM32的学习。相较于第2版,本书在开发环境、源代码、教程说明等方面进行了更新和完善。 STM32自学笔记 《STM32自学笔记》以新颖的思路、简单的逻辑、简洁的语言来阐述作者初遇STM32以来的种种认识,书中多处内容都是由作者从STM32初学时的实践中总结而来。 本书主要介绍ARM Cortex—M3系列
[单片机]
STM32定时器中断应用实例
本文将介绍:通过STM32cube mx配置工程文件,实现定时器中断的功能; 实例中使用的是STM32F407芯片 ①STM32cube mx配置工程文件 ②代码实现 ①STM32cube mx配置工程文件 Step1:使能RCC、选择外部晶振 Step2:配置时钟树 Step3:使能TIM6、配置TIM6 ,1秒产生一次定时器中断 Step4:配置中断的优先级分组、中断优先级 Step4:使能串口、用于调试使用 Step5:生成工程文件 ②代码实现 Step1:编写串口输出重定向函数,用于调试使用;记得添加头文件stdio.h Step2:开启定时器中断 Step3:自定义定时器中断服务函数 先在
[单片机]
玩转STM32(8)配置JLink调试器
前面已经介绍了怎么样编译项目,生成一个HEX文件,但是这个目标文件还是储存在电脑上,这样你辛苦写出来的代码,还是一个没有什么作用的文件,即使已经把开发语言变成了机器语言,也是无济于事的。那么怎么样才能把这个目标文件搬到STM32的CPU里面呢?这是有很多种方法的,比如采用STM32的烧写器;比如把目标文件发送给ST公司,让生产这个CPU时,直接写入去;在我这里采用开发的模式,就是使用前面介绍的JLink调试器,它为开发电脑与STM32的CPU建立起一座桥梁,可以把目标文件运送到CPU里面,也可以把CPU里的数据运送出来。有了这座桥梁,就会很方便电脑与STM32的CPU沟通,并且快捷,无论写入文件的速度,还是读取CPU的状态。
[单片机]
STM32开发笔记58: STM32F407特殊引脚连接电路
单片机型号:STM32F407VGT6 本文介绍STM32F407特殊引脚连接电路,见下图: 引脚:49、73 VCAP_1和VCAP_2,按照下列电路设计方法进行设计。这里应该着重看最后1句话,其表明使用2个0.1uF电容对地即可。 引脚:11、22、28、50、75、100 VDD和VDDA,22脚是模拟电源,这些引脚直接加0.1uF电容去耦即可。 引脚:6 VBAT,该引脚连接电池,用以在主电源掉电后,维持芯片部分部件(例如RTC)继续工作,当不使用这些功能时,可按照下述方法进行电路连接。 引脚:21 VREF+,此引脚有2种处理方法,第1种是独立供给参考电压,其参考电路图如
[单片机]
stm32-GPIO 模式配置如何?
作为嵌入式系统的一种重要硬件平台,STM32 微控制器在许多应用场合都有广泛的应用。GPIO(General Purpose Input Output)即通用输入输出口,是 STM32 微控制器中非常重要的一个外设模块。在 STM32 的开发中,通过 GPIO 模式配置,可以实现多种不同外设的输入输出功能,如 LED 灯、按键、电机等。本文就来详细介绍 STM32 的 GPIO 模式配置。 首先,STM32 的 GPIO 可以分为四个部分,即 A、B、C、D 四个端口,每个端口包括多个 GPIO 引脚。我们可以根据实际需要,选择相应的 GPIO 引脚来实现输入输出的功能。 其次,在进行 GPIO 的模式配置之前,我们需要了
[单片机]
STM32 USB 问题汇总
以下是笔者将ST的Custom_HID例程修改为 自定义USB设备 例程时总结出来的,因为笔者也是刚刚学USB开发不久,某些方面理解错误在所难免,请各位大虾指正。 一、usb_desc.c文件 根据你程序使用的通信方式修改。usb_desc.h文件中定义要根据usb_desc.c文件中的数组的大小;ConfigDescriptor 下添加需要处理的端点;根据需要添加或删除报告描述符(主要用于HID)和CDC接口描述符(主要用于实现USB转串口)等。具体方法可以下载个 电脑圈圈 使用D12编写的例子。 二、Usb_conf.h文件: 1、修改需要处理那些中断 CNTR_CTRM 处理数据正确传输后控制,比如说响应主机 C
[单片机]
stm32单片机用什么软件编程
今天要和大家分享的是stm32单片机用什么软件编程相关信息。 想学单片机开发,最主要是熟悉stm32的软件开发环境,目前stm32的开发环境,主流是KEIL和IAR,当然主要是windows版本运行。 两个开发环境都是目前的主流,都用的很多,而且这两种开发环境实际上差异不大,学好一个即可。我个人常用keil,虽然keil的版本很多,因为我常用的是STM32F1,所以KEIL4,就能满足需求。想完整完成一个Stm32的工程开发过程,需要学会新建工程,这个是单片机开发工具基础操作。 除此之外。还需要学会使用Keil进行仿真,写代码肯定会遇到各种问题。怎么找到问题造成的原因。就需要仿真查看了代码执行情况,当然也有其他
[单片机]
对STM32 NIVC的了解
用STM32做项目已经有段时间了,但是我忽然发现我对NVIC其实一点都不了解,所以今天补习了一下NVIC的知识以及我自己对NVIC中断优先级设置的了解,希望对大家有所帮助: 对于NVIC中断优先级的设置一直都不是很清楚; 具体函数如下: /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // 优先级组设置 /* Timer2中断*/ NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; // 通道设置 NVIC_
[单片机]