嵌入式接口期末复习-(江苏海洋大学)---(第一部分通用输入输出)

一 : 数据类型

  1. char   int8_t   uint8_t     8
  2. short  int16_t  uint16_t    16
  3. int    int32_t  uint32_t    32

二 :  GPIO(General Purpose Input Output) 通用输入输出口

  1. 可配置8钟输入输出模式
  2. 输出模式下可控制端口输出高低电平   作用: 驱动LED  控制蜂鸣器  模拟通信协议
  3. 输入模式下可读取端口的高低电平或电压  作用: 读取按键输入 外接模块电平信号
  4. 基本构造:

5.寄存器每一位对应一个引脚  输出寄存器写1 对应的引脚就会输出高电平 写0 低电平

输入寄存器读取1 端口高电平  读取0为低电平

6.IO 端口位的基本结构   寄存器---驱动器---其中一个IO引脚

(1)上拉电阻VDD   下拉电阻VSS  (可用程序配置)

上导通 下断开 ---> 上拉输入模式 (默认高电平的输入模式)

下导通 上断开 ---> 下拉输入模式 (默认低电平的输入模式)

都断开 --> 浮空输入模式

作用:给输入提供一个默认的输入电平(避免引脚悬空)

若接入上拉电阻 当引脚悬空时还有上拉电阻来保证引脚的高电平

(2)最上面的两路线路 时连接片上外设的端口

[1]模拟输入 连接到ADC上 它是接收模拟量 接施密特触发器(通过阈值调整波动电平)前

[2]复用功能输入 连接到其他需要读取端口的外设上 eg:串口的输入引脚 接收数字量 在施密特触发器后面

7.MOS管是一种电子开关 我们的信号来控制开关的导通和关闭 信号负责将IO接到VDD或者VSS   三种模式

(1) 推挽输出(强推输出模式) P-MOS N-MOS 均有效

数据寄存器为1时 上管导通 下管断开 输出到VDD 就是输出高电平

数据寄存器为0时 上管断开 下管导通 输出到VSS  就是输出低电平

此模式下 STM32对IO具有绝对的控制权  高低电平都由STM32说的算

(2)开漏模式下 P-MOS 无效

数据寄存器为1时 下管断开 输出相当于断开 也就是高阻模式

数据寄存器为0时 下管导通 输出到VSS 输出低电平 只有低电平驱动能力 (通信协议)

(3)关闭模式 均无效 输出关闭  端口的电平由外部信号来控制

编程步骤:

(1)使用RCC开启GPIO的时钟

(2)使用GPIO_Init函数初始化GPIO

(3)使用输出或者输入的函数控制GPIO口

[1]rcc.h文件 最常见的就3个 AHB AHB1 AHB2 然后看它的函数定义

[2]使能 或 失能 AHB外设时钟988

[3]gpio.h

GPIO_InitTypeDef 结构体参数   去本身的 enum里面去看

  1. GPIO_Mode:就是上面的8种模式
  2. GPIO_Pin : 都懂哈
  3. GPIO_Speed: 随便选

Led 是 低电平亮  高是 暗 !!!!!!

按键抖动

  1. 随便选择一个GPIO口,然后通过K1接到地,当按键按下时,PA0被直接下拉到GND,此时PA0口的电压就是低电平,当按键松手时,PA0被悬空,电压不确定,所以必须要求PA0是上拉输入的模式,否则就会出现引脚不确定的现象。(PA0是上拉模式,引脚悬空,PA0就是高电平)
  2. 增加了一个上拉电阻  引脚可以配置为 浮空输入或者上拉输入
  3. PA0必须要配置为下拉输入
  4. 增加了一个下拉电阻 引脚可以被配置为浮空输入 或者下拉输入

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值