自己开公司 自己做网站,做调查问卷能挣钱的网站,什么网站做简历免费下载,单县网站开发0. 引入 在单片机产品中,我们常常可以见到三种模块:LCD灯、KEY按键、BEEP蜂鸣器 LED灯: 一个比较常见的LED电路LED0 ---------- 通过控制LED0引脚(电线) 给它一个低电平(低电压),LED灯就会亮 给它一个高电平(高电压),LED灯就会灭 …0. 引入 在单片机产品中,我们常常可以见到三种模块:LCD灯、KEY按键、BEEP蜂鸣器 LED灯: 一个比较常见的LED电路LED0 ---------- 通过控制LED0引脚(电线) 给它一个低电平(低电压),LED灯就会亮 给它一个高电平(高电压),LED灯就会灭 1 — 高电平 0 — 低电平 电流:从电势高的地方流向电势低的地方 CPU === 往LECD0引脚去 写1,写0 "output" 输出功能 KEY按键: 一个比较常见的KEY电路 KEY0 ------ 通过读取KEY0引脚的电平状态来知晓用户是否按下按键 高电平(1) --- 弹起 低电平(0) --- 按下 CPU === 读取KEY0引脚的电平状态 "input" 输入功能 BEEP蜂鸣器: 一个比较常见的BEEP电路 略这些引脚最终是接入到MCU的某个引脚(gpio)上去的 控制LED灯、KEY按键、BEEP蜂鸣器等,可以在MCU上面写程序去控制这些引脚 1. GPIO到底是什么? GPIO:General Purpose Input Output 通用功能的输入输出 线 GPIO就是从芯片(芯片 = CPU + 总线 + 外设控制器)内部引出一根功能复用的口线("电线"),可以由CPU配置成不同的功能 如:输入功能,输出功能,其他复用功能等 芯片或CPU控制整个世界就是通过这样的引脚(口线,GPIO) STM32F4xx共有144个GPIO口线(引脚,pin),分为9组,记为GPIOA,GPIOB,GPIOC,GPIOD,GPIOE,GPIOF,GPIOG,GPIOH,GPIOI.每组管理16个GPIO引脚,编号从0~15 如:GPIOA这一组有16个引脚,分别记为GPIOA0,GPIOA1,GPIOA2,... GPIOA15 其他组类似 GPIOA0 ----- PA0 GPIOB3 ------ PB3 ...... 这些GPIO引脚都是功能复用的,并且由GPIO控制器来控制它们的 所有的外设都是由"外设控制器"来控制 GPIO控制器由不同的寄存器来配置或控制它们(GPIOs) 每组GPIO地址分配如下:GPIOA 0x4002 0000 ~ 0x4002 03ff
GPIOB 0x4002 0400 ~ 0X4002 07FF
GPIOC 0x4002 0800 ~ 0x4002 0BFF
GPIOD 0x4002 0C00 ~ 0x4002 0FFF
GPIOE 0x4002 1000 ~ 0x4002 13FF
GPIOF 0x4002 1400 ~ 0x4002 17FF
GPIOG 0x4002 1800 ~ 0x4002 1BFF
GPIOH 0x4002 1C00 ~ 0x4002 1FFF
GPIOI 0x4002 2000 ~ 0x4002 23FF2. STM32F4xx GPIO内部结构原理 每个GPIO内部都可以配置成: 1. 输入功能:input mode CPU可以获取该GPIO口的外部输入的一个电平状态 输入功能有四种模式: (1)输入悬空(input floating):不接上拉和下拉电阻 输入引脚处于浮空状态,即没有特定电压状态,引脚悬浮在空中 IO引脚的电平状态完全是外部输入所决定的,这时CPU能够通过读取数据的操作知道状态