IO口

摘要:
STM32的每个IO端口由7个寄存器控制。公共IO端口寄存器位CRLCRHIDRODR。CRLCRH控制每个IO端口的模式和输出速率。CRL控制每组IO端口(A-G)的低8位模式。CRH控制每组IO端口(A-G)的高位8位模式。50M速率),0x8表示上/下输入模式(用作输入端口),0xB表示多路输出(使用IO端口的第二个功能,50M速率。IDR是端口输入数据寄存器。

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;

免责声明:文章转载自《IO口》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql全文检索DLL劫持 LPK.dll下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vi/vim 常用技巧

vi/vim 添加或删除多行注释 1.进入vi/vim编辑器,按CTRL+V进入可视化模式(VISUAL BLOCK) 2.移动光标上移或者下移,选中多行的开头 3.选择完毕后,按大写的的I键,此时下方会提示进入“insert”模式,输入你要插入的注释符,例如# 4.最后按ESC键,你就会发现多行代码已经被注释了 5.删除多行注释的方法,同样 Ctrl+V...

Linux搭建Socks5代理服务器

下面笔者将用SS5在亚马逊云服务器上的Linux搭建一台Socks5 Proxy Server,具体过程如下: 1、首先,编译安装SS5需要先安装一些依赖组件 yum -y install gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel openssl-devel 2、...

ftp的主动模式(port)与被动模式(PASV) (转)

FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。  (一)主动FTP           主动方式的FTP是这样的:客户端从一个任意的非特权端口...

RUST叫系统编程语言,而GO是网络编程语言

用GO你必须要搞清楚一点,GO不是面向CPU密集计算的,而是面向IO密集计算的!!!RUST才是面向CPU密集计算的语言,所以RUST叫系统编程语言,而GO是网络编程语言。GO跟JAVA的Spring是一个层面上的东西。对于那些无法同时操纵高级语言Python Ruby ...和系统语言比如C C++的中间类型的人,才会用JAVA GO。但是别以为你用JA...

Zenmap的用法《转》

第一种:Intense scan (nmap -T4 -A -v) 一般来说,Intense scan可以满足一般扫描 -T4 加快执行速度 -A 操作系统及版本探测 -v 显示详细的输出 第二种:Intense scan plus UDP (nmap -sS -sU -T4 -A -v) 即UDP扫描 -sS  TCP SYN 扫描 -sU  UDP 扫...

VirtualBox虚拟机安装与上网配置

 一,安装VirtualBox     1.到https://www.virtualbox.org/下载安装包进行安装。 二,安装虚拟机        1.找到系统镜像     2.打开VirtualBox选择新建,创建虚拟硬盘。        3.添加虚拟光驱加载要装系统的镜像。        4.启动虚拟机。        5.完成安装 三,设...