一、下载:

STM32F103中文参考手册

二、CRH和CRL的介绍:

CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制GPIOX(X表示A---G)的低8位(Pin7----Pin0)。

三.CRH、CRL和ODR的使用:

1、

RCC->APB2ENR|=1<<2;    //使能PORTA时钟

GPIOA->CRH&=0XFFFFFFF0;//清除PA8该位原来的设置

GPIOA->CRH|=0X00000003;//PA8 推挽输出

GPIOA->ODR|=1<<8;      //PA8 输出高

由以上代码看出,PA8设置成了推挽输出。大家都知道一个端口可以输出高电平,也可以输出低电平,而GPIOA->ODR|=1<<8;这个表达式就把PA8设置成了在空闲的时候输出高电平;GPIOA->ODR|=0<<8;这个表达式,把PA8设置成了在空闲的时候输出低电平。

如果想设置PA8为推挽输出,并且希望输出为低电平,可以不要这个表达式GPIOA->ODR|=0<<8;  ,因为系统会默认端口输出为低电平 。

RCC->APB2ENR|=1<<2;    //使能PORTA时钟

GPIOA->CRL&=0XFFFFF0FF;//清除PA2该位原来的设置

GPIOA->CRL|=0X00000300;//PA2 推挽输出

GPIOA->ODR|=1<<2;      //PA2 输出高

以上可以看出如果控制低八位的IO,就控制CRL寄存器,若要控制高八位IO口就需要控制CRH寄存器。

2、  RCC->APB2ENR|=1<<2;     //使能PORTA时钟

GPIOA->CRH&=0XFF0FFFFF;

GPIOA->CRH|=0X00800000; //PA13设置成上拉/下拉输入

GPIOA->ODR|=1<<13;   //PA13上拉

由以上代码看出,PA13设置成了上拉输入,即输入高电平。大家都知道,一个端口设置成了输入模式,那么它可以输入高电平,也可以输入低电平。GPIOA->ODR|=1<<13;这个表达式把PA13设置成了上拉模式,即在空闲的时候输入高电平;GPIOA->ODR|=0<<13;这个表达式把PA13设置成了下拉模式,即在空闲的时候输入低电平。

如果想设置PA13为输入模式,并且希望输入低电平,可以不要这个表达式GPIOA->ODR|=0<<13;,因为系统会默认端口输入为低电平。

3、IDR的使用:

IDR是一个端口输入数据寄存器,只用了低16位。该寄存器为只读寄存器,并且只能以16位的形式读出。读出的值为对应IO口的状态。

备注:参考STM32中文参考手册P67--P69

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

crh寄存器_STM32的CRH、CRL、ODR和IDR寄存器的使用总结相关推荐

  1. crh寄存器_关于CRH、CRL、ODR和IDR寄存器的使用总结

    关于 CRH . CRL . ODR 和 IDR 寄存器的使用总结 一. CRH 和 CRL 的使用: CRH 和 CRL 的使用基本相同, CRH 用于控制 GPIOX ( X 表示 A---G ) ...

  2. STM32的CRH、CRL、ODR和IDR寄存器的使用总结

    STM32的CRH.CRL.ODR和IDR寄存器的使用总结 一.下载: STM32F103中文参考手册 百度网盘:链接:百度网盘 请输入提取码 密码:lwcg 二.CRH和CRL的介绍: CRH和CR ...

  3. 关于CRH、CRL、ODR和IDR寄存器的使用总结

    关于CRH.CRL.ODR和IDR寄存器的使用总结 一.CRH和CRL的使用: CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL ...

  4. STM32F10x系列GPIO寄存器BRR、BSRR、ODR、IDR的使用理解

    引脚的高.低电平控制,有3种方法(3个寄存器) 分别是通过GPIO的 3个 管脚控制寄存器: ODR寄存器,   控制管脚的高.低电平,低16位有效,写1 高电平, 写0 低电平; BSRR寄存器, ...

  5. crh寄存器_STM32 学习笔记(寄存器)---2

    故事很多,我打算用一辈子来跟你讲,你准备好了吗?(狗头 没必要一次看完,多看几遍消化消化. 所有操作,最终目的都是操作寄存器 stm32编程实质上是修改寄存器的32位的具体的值 单片机 sfr P0= ...

  6. STM32寄存器操作端口模式CRL/CRH详解

    STM32寄存器操作端口模式CRL/CRH详解 首先,在开始讲解前,大家请先看如下一段代码: #define SDA_IN_24c02(){GPIOB->CRH&=0XFFF0FFFF; ...

  7. stm32延时us寄存器_STM32延时函数的四种方法

    关注.星标公众号,不错过精彩内容 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. ...

  8. 关于STM32的BSRR(端口位设置/清除寄存器) 和 BRR(端口位清除寄存器) 的理解(初学32)

    关于STM32的BSRR(端口位设置/清除寄存器) 和 BRR(端口位清除寄存器) 的理解(初学32) BSRR 共32位,其对应位数低电平不影响ODR(端口输出数据寄存器),若低16位(0-15位) ...

  9. idr寄存器、_STM32F103设置上拉输入后GPIOE-IDR寄存器疑惑 PA按键有效PE key2按键无效...

    [mw_shl_code=c,true] [mw_shl_code=c,true]//战舰V2板 //GPIOE->ODR |= 0xf<<2;//上拉2345 //按我的理解设置上 ...

最新文章

  1. Thread.sleep(0):线程休眠0秒有什么意义!
  2. 手机调试打开控制台方法vconsole
  3. zabbix登山路——简单监控_各项参数解析
  4. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]
  5. python飞机大战3关BOSS
  6. SAP Spartacus 升级时关于 schematics 的更新
  7. .net实现批量在线打印_如何实现报表的批量打印需求
  8. SAP License:MM-采购订单migo,101收货,有三种方式冲销,可以使库存减少,有何不同?
  9. html项目_Python Selenium项目实战之添加发送HTML测试报告邮件!
  10. 952开头的电话一天响两三次,不是诈骗就是推销,请问该怎么屏蔽呢?
  11. 数据预处理与特征工程—6.Kaggle房价预测中数据预处理与特征工程
  12. 详解串行通信协议及其FPGA实现
  13. Pr 入门教程,如何倾斜移位效果?
  14. 让Apache日志不记录图片等指定扩展名文件的设置方法
  15. python wifi密码本下载_WifiPass下载 WifiPass(Python获取本机保存的所有WIFI密码) 免费版 下载-脚本之家...
  16. java.util.concurrent.ThreadFactory 实例讲解
  17. 抑郁症自测量表测试软件,科学网-抑郁症自测量表(SDS)-李侠的博文
  18. 盘点20款让你脑洞大开的AR技术应用
  19. mysql double 使用_mysql double类型使用与主键自增
  20. 桌面上程序可以用计算机打不开,我电脑桌面图标程序都打不开怎么办

热门文章

  1. 帮助企业客户提升服务管理数字化能力,「甄知科技」燕千云完成7000万元首轮融资
  2. 1Mbps高速光耦合器TLP112A工作原理及应用实例说明
  3. 银行系统(万里长征始于足下)
  4. 电子商务多平台运营与实践课程设计
  5. JavaScript 教程「9」:DOM 元素获取、属性修改
  6. python基础-02-input使用
  7. 兆比特每秒和兆字节每秒_比特 千比特 兆比特之间的换算
  8. 去哪儿笔试:座位安排问题
  9. debian安装java
  10. Python 教你训练一个98%准确率的微博抑郁文本分类模型(含数据)