STM32入门系列-GPIO结构】的更多相关文章

已经了解了STM32 GPIO的基本概念及引脚分类.现在来看下STM32 GPIO内部的结构是怎样的.IO端口位的基本结构如下图所示. 从图中可以看出GPIO内部结构还是比较复杂的,只要将这张GPIO结构图理解好,那么关于GPIO的各种应用模式将非常清楚.图中最右端I/O端口就是STM32芯片的引脚,其它部分都在STM32芯片内部.上图中我们将每部分都用红色数字标号了,按照顺序我们逐一讲解. 保护二极管 引脚内部加上这两个保护二级管可以防止引脚外部过高或过低的电压输入,当引脚电压高于VDD_FT…
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出.STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯.控制以及数据采集的功能.不过 GPIO 最简单的应用还属点亮 LED 灯了,只需通过软件控制 GPIO 输出高低电平即可.当然 GPIO 还可以作为输入控制,比如在引脚上接入一个按键,通过电平的高低判断按键是否按下.其中STM32F103xC.STM32F103xD和STM32F103xE有144…
GPIO工作模式 由于GPIO内部的结构关系,决定了GPIO可配置成以下几种模式. 输入模式 在输入模式时,施密特触发器打开,输出被禁止.可通过输入数据寄存器GPIOx_IDR读取I/O状态.输入模式可以配置为模拟.上拉.下拉以及浮空模式.上拉和下拉输入很好理解,默认的电平由上拉或者下拉决定.浮空输入的电平是不确定的,完全由外部的输入决定,一般接按键的时候可以使用这个模式.模拟输入则用于 ADC 采集. 输出模式(推挽/开漏) 在输出模式中,推挽模式时双MOS管以推挽方式工作,输出数据寄存器GP…
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.结构元素 可以理解为语义话标记,比如:以前这么写<div id="nav"></div> 现在偷懒写:<nav></nav> 1.header头部区域,包含对主页的介绍 <header> 标签定义文档的页眉(介绍信息) 2.nav导航系列 <nav> 标签定义导航链接的…
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号线.内核通过总线矩阵与FLASH.SRAM.外设连接.而外设包括GPIO.USART.I2C.SPI等. STM32芯片系统结构     STM32F103 系列芯片(不包含互联网型)的系统结构如下: 从上图可以看出,在小容量.中容量和大容量产品中,主系统由以下部分构 成: 四个驱动单元: Cort…
入手STM32有一段时间了,感觉刚入门时很难,无处下手,现在学到了点皮毛,写出来和大家分享一下. 首先,什么叫GPIO?这个问题,答案是我也不知道!至少目前我没有必要知道,我只要知道他其实就是51单片机的那种IO口而已,不同的是,51单片机的IO口是不需要配置模式的,而STM32的IO口(哦,不,应该说是GPIO口,╮(╯▽╰)╭,真绕舌头)是需要配置模式和时钟的(好吧,又冒出一个时钟来,够麻烦的),在这里要说明一下,STM32的GPIO,如果你要用它,就要做两步工作,第一是配置模式.速度,第二…
要点亮LED,需要完成LED的驱动, 在工程模板上新建一个led.c和led.h文件,将其存放在led文件夹内.这两个文件需要我们自己编写. 通常xxx.c文件用于存放编写的驱动程序,xxx.h文件用于存放xxx.c内的stm32头文件.管脚定义.全局变量声明.函数声明等内容. 因此在led.c文件内编写如下代码: #include "led.h" /********************************************************************…
前面文章介绍了存储器映射.寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫.这里我们通过一个实例来对 C 语言封装寄存器进行介绍. 具体实例:控制 GPIOC 端口的第 0 管脚输出一个低电平.首先我们需要知道GPIOC 端口外设是挂接在哪个总线上的,然后根据总线基地址和本身的偏移地址得到 GPIOC 外设基地址,最后通过这个外设基地址得到里面各种寄存器基地址. 总线和外设基地址封装 根据寄存器的概念,我们可以使用 C 语言中的宏定义对寄存器进行定义.具体代码如下: 1 //定义…
作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块.按键模块.LED模块.DAC模块.ADC模块.can模块.485模块.以太网模块.WiFi模块.蜂鸣器模块.SRAM模块.显示屏等.有的朋友可能要用stm32做红外探测小车,那么就需要用到红外模块:有的朋友可能需要用到WiFi模块进行通信产品的设计.下面贴上一张图我学习STM32时用过的开发板. 主要讲的内容分为三部分: 什么是STM32: STM32与ARM之间的关系: STM32能做什么. 什么…
之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)"章节,其中有详细的寄存器介绍.固件库已经把时钟相关寄存器的使能配置都封装好,放在stm32f10x_rcc.c和stm32f10x_rcc.h中.只需要打开stm32f10x_rcc.h文件,会发现有很多的宏定义和时钟使能函数的声明.这些时钟函数可大致分为三类.一类是外设时钟使能函数,一类是时钟源和倍…