zoukankan      html  css  js  c++  java
  • IO口

    STM32的每个IO端口都有7个寄存器来控制。他们是:CRH CRL IDR ODR BSRR BRR LCKR。我们常用的IO端口寄存器位CRL CRH IDR ODR。
    CRL CRH控制着每个IO口的模式及输出速率。CRL控制着每组IO端口(A-G)的低8位的模式。CRH控制着每组IO端口(A-G)的高8位的模式。几个常用的配置,0x0表示模拟输入模式,0x3表示推挽输出模式(做输出口用,50M速率)、0x8表示上/下拉输入模式(做输入口用)、0xB表示复用输出(使用IO口的第二功能、50M速率)。

    IDR是一个端口输入数据寄存器。该寄存器为只读寄存器,并且只能以16位的形式读出。如果想知道某个IO口的状态,只需要读出这个寄存器,再看某个位的状态就可以了。

    ODR是一个端口输出数据寄存器。该寄存器为可读写寄存器。从该寄存器读出的数据可以用于判断当前IO口的输出状态。而向该寄存器写数据,则可以控制某个IO口的输出电平。

    我们使用IO口的通常步骤是:
    1、使能IO端口时钟
    2、设置IO端口模式
    3、操作IO端口

    例如:

    RCC->APB2ENR |= 1<<2; 
    RCC->APB2ENR |= 1<<5; 
    GPIOA->CRH &= 0xFFFFFFF0; 
    GPIOA->CRH |= 0x00000003; 
    GPIOA->ODR |= 1<<8;
  • 相关阅读:
    Ubuntu20 修改网卡名称
    单臂路由实现不同vlan间通信
    配置trunk和access
    基于端口划分vlan
    Zabbix5.0服务端部署
    搭建LAMP环境部署opensns微博网站
    搭建LAMP环境部署Ecshop电商网站
    Zabbix 监控过程详解
    Zabbix agent端 配置
    Zabbix 监控系统部署
  • 原文地址:https://www.cnblogs.com/cuglkb/p/6249148.html
Copyright © 2011-2022 走看看