zoukankan      html  css  js  c++  java
  • STM32中的GPIO笔记

    1.GPIO是STM32可控制的引脚,STM32的GPIO被分成很多组,每组有16个引脚。每个GPIO端口包含:2个32位配置寄存器(CRL、CRH),2个32位数据寄存器(IDR、ODR),1个32位复位寄存器(BSRR),1个16位复位寄存器(BRR)和1个32位锁定寄存器。

    2.GPIO端口的每个位可以配置成:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。

    3.复位寄存器(BSRR、BRR)可以对任何GPIO寄存器的独立访问。配置寄存器(CRL和CRH)可以配置GPIO的工作模式和工作速度,每4位控制一个IO,CRL控制低8位,CRH控制高8位。其中MODE位配置速度,CNF位配置输入输出模式。

    4.GPIO属于高速的外设,挂载到APB2总线上,基本功能是控制引脚输出高电平或低电平。GPIO有很多寄存器,每一个都有特定的功能。每个寄存器32位,占4个字节。

    5.GPIO:一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,那就可以控制LED灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的通断。最基本的输入功能是检测外部输入电平,如把GPIO引脚连接到按键,通过电平高低区分按键是否被按下。

    6.STM32 GPIO 配置之ODR, BSRR, BRR:ODR寄存器可读可写,既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1 gpio 管脚为高电平,写 0 为低电平。BSRR 只写寄存器:既能控制管脚为高电平,也能控制管脚为低电平。对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作。BRR 只写寄存器:只能改变管脚状态为低电平,对寄存器 管脚对于位写 1 相应管脚会为低电平。写 0 无动作。

    7.位带操作:可以实现对某一GPIO口寄存器(或SRAM内存中)的某一bit位直接写0或1,达到控制GPIO口输出(或改变SRAM中这一bit位的值)。

    8.GPIO工作模式

    模拟输入:AD采集、低功耗下省电
    浮空输入:外部按键输入
    下拉输入:IO内部下拉电阻输入
    上拉输入:IO内部上拉电阻输入
    开漏输出:连接不同电平、总线电路
    推挽输出:常用
    复用开漏输出:片内外设功能:TX1、MOSI、MISO、SCK、SS
    复用推挽输出:片内外设功能:I2C的SCL、SDA

    9.一个字节是8位,汇编中,为了表示一个整数类型,占用两个字节,用二进制来表示,即总共16位。例如:3的二进制是11,用两个字节表示为0000 0000 0000 0011,前面的8位称为高8位,后边的8位称为低8位。

  • 相关阅读:
    FAT32文件系统的存储组织结构(一)
    导出CCS3.3数据及使用matlab处理的方法
    lua入门之二:c/c++ 调用lua及多个函数返回值的获取
    汇编入门学习笔记 (七)—— dp,div,dup
    Linux(CentOS)的server安装及配置图解(图文)
    利用cURL会话获取一个网页
    超级账本环境搭建fabric
    以太坊主链同步
    geth 命令
    solc 编译Solidity
  • 原文地址:https://www.cnblogs.com/kerwincui/p/11860248.html
Copyright © 2011-2022 走看看