CRH、CRL、ODR和IDR的使用
STM32的每个I/O口都由7个寄存器控制:2个32位端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位复位寄存器BSRR;1个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;
而我们最常用的有4个:CRL/CRH/IDR/ODR;所以一般情况下我们只要配置这四个is OK。而CRH和CRL作用是完全一样的,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制GPIOX(X表示A---G)的低8位(Pin7----Pin0)。每个模式的pin脚设置需要4bit来完成,即MODE[1:0]负责设置模式位,CNF[1:0]负责设置配置位。
首先,用到哪个IO使能哪组IO时钟,使能GPIO对应的时钟,RCC->APB2ENR|=1<<2; // 使能PORTA时钟(后续会提到),其次是配置其工作模式, GPIO的八种工作模式:
1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
2、带上拉输入GPIO_IPU——IO内部上拉电阻输入
3、带下拉输入GPIO_IPD——IO内部下拉电阻输入
4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电
5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)
8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
see a example:GPIOC->CRL&=0XFFFF0FFF; //清除PC3该位原来的设置
GPIOC->CRL|=0X00008000; //设置下拉输入
GPIOC->ODR==0<<3; //ODR暂存将从端口发送的数据为0,即输出低
GPIOC->IDR==0<<3; //外部输入为0
CRH、CRL、ODR和IDR的使用相关推荐
- crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结
关于 CRH . CRL . ODR 和 IDR 寄存器的使用总结 一. CRH 和 CRL 的使用: CRH 和 CRL 的使用基本相同, CRH 用于控制 GPIOX ( X 表示 A---G ) ...
- STM32的CRH、CRL、ODR和IDR寄存器的使用总结
STM32的CRH.CRL.ODR和IDR寄存器的使用总结 一.下载: STM32F103中文参考手册 百度网盘:链接:百度网盘 请输入提取码 密码:lwcg 二.CRH和CRL的介绍: CRH和CR ...
- 关于CRH、CRL、ODR和IDR寄存器的使用总结
关于CRH.CRL.ODR和IDR寄存器的使用总结 一.CRH和CRL的使用: CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL ...
- crh寄存器_STM32的CRH、CRL、ODR和IDR寄存器的使用总结
一.下载: STM32F103中文参考手册 二.CRH和CRL的介绍: CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制 ...
- STM32F10x系列GPIO寄存器BRR、BSRR、ODR、IDR的使用理解
引脚的高.低电平控制,有3种方法(3个寄存器) 分别是通过GPIO的 3个 管脚控制寄存器: ODR寄存器, 控制管脚的高.低电平,低16位有效,写1 高电平, 写0 低电平; BSRR寄存器, ...
- STM32GPIO寄存器CRL、CRH、IDR、ODR、BSRR、BRR
GPIO 寄存器描述 注意:本文以STM32F10XXX为参考,重在理解 CRL与CRH CRL与CRH分别为端口配置低与端口配置高寄存器,为32位寄存器,其中每四位控制一个I/O口 对CNFy与MO ...
- STM32单片机的GPIO寄存器CRL、CRH、IDR、ODR、BRSS、BRR
STM32的寄存器多如牛毛,要一个一个的弄清楚谈何容易呀,所以我们在学习的时候要抓住重点,挑重要的进行学习和记忆,因为STM32一个一个去配置寄存器的话相当的麻烦,我们实际开发的话也不会一个一个去配置 ...
- 了解库开发,我们从STM32标准库开发学起
摘要:从STM32新建工程.编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣. 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题.对于追求开发速度的业 ...
- STM32F103mini教程学习总结与心得(一)
关注同名微信公众号"混沌无形",有趣好文! 1.引脚是否兼容5V的判断:引脚表中PF表示5V,原理图中有ADC的引脚为3.3V 2.PT:容忍5V,没有PT标示,就不能 3. 每组 ...
最新文章
- chrome session丢失_一文带你彻底读懂Cookie、Session、Token到底是什么
- Git submodule 的笔记
- 完整学习git五git重置
- 转载Silverlight AutoCompleteBox 增强key/value 拼音头检索
- java中scort意思_java入门—笔记
- Silverlight 3一瞥
- Reference to a cleared variable I1
- java枚举返回字符串_枚举工具类-通过给定值获取对应的枚举类
- SolidWorks模型分享:皮带轮 免费模型下载
- 电源管理允许此设备唤醒计算机怎么关掉,电脑如何设置电源管理允许鼠标唤醒计算机...
- Lucene Automaton(二)
- Ubuntu14.04安装LSD-SLAM
- 猫咖小程序开发有何优势?具备什么功能版块?
- 写个脚本薅区块鱼羊毛
- iic片选PCA9548A芯片
- VisionMobile:M2M生态系统的秘方(5):四、创建M2M平台
- 2021年G1工业锅炉司炉考试及G1工业锅炉司炉证考试
- 联通用户的福利,不了解就拉倒!
- 哈理工OJ-1584-青蛙过河【贪心+二分】
- 百度孙宇:百度语义理解技术ERNIE及其应用
热门文章
- 全国邮编区号大全和从word中读取内容保存到msql中的源程序
- 读取服务器光模块信息,如何使用MIB读取光模块的收发光功率
- JavaScript入门小试,水仙花数的辨别以及再深入学习一些定义区间。
- java:从左至右显示“12345678”,接着显示“23456781”,在接着显示“34567812”,一直到“81234567”, 然后返回“12345678”
- 强叔侃墙 NAT篇 NAT Server 三十二字真言(上篇)_实验一正一反,出入自如去反存正,自断出路
- iOS 优化 - 瘦身
- 口语化/面试讲解TCP为什么要握手,为什么是三次握手而不是两次或四次
- 如何充分利用开源项目_充分利用最好的5个开源转移学习项目来增强您的项目...
- python-docx 不改变原文件调整段落行间距的问题
- [MySQL] 统计图数据查询 (MySQL查询时间范围内所有日期)