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

一、下载:

STM32F103中文参考手册

百度网盘:链接:百度网盘 请输入提取码 密码:lwcg

二、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 &= ~(1<<8);这个表达式,把PA8设置成了在空闲的时候输出低电平。

如果想设置PA8为推挽输出,并且希望输出为低电平,可以不要这个表达式GPIOA->ODR &= ~(1<<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 &= ~(1<<13);这个表达式把PA13设置成了下拉模式,即在空闲的时候输入低电平。

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

3、IDR的使用:

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

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

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. 关于CRH、CRL、ODR和IDR寄存器的使用总结

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

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

    一.下载: STM32F103中文参考手册 二.CRH和CRL的介绍: CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制 ...

  4. 5.STM32外设都有哪几类寄存器?(详解)

    STM32外设都有以下几类寄存器:

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

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

  6. 【正点原子STM32连载】第六章 新建寄存器版本MDK工程 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  7. STM32单片机的CRL和CRH寄存器

    这里写目录标题 问题: 基础知识: 解释: 扩展 PA1为输入(上/下拉) PA2为输入(上/下拉) PA1为输出(通用推挽输出50MHZ) PA2为输出(通用推挽输出50MHZ) 问题: 当32单片 ...

  8. CRH、CRL、ODR和IDR的使用

    STM32的每个I/O口都由7个寄存器控制:2个32位端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR:1个32位的置位复位寄存器BSRR:1个16位的复位寄存器BRR:1个32位的 ...

  9. idr寄存器、_STM32 GPIO寄存器 IDR ODR BSRR BRR

    IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器 下面内容的原文:http://m646208823.blog.163.com/blog/static/1669029532012931 ...

最新文章

  1. R语言ggplot2可视化绘制线图(line plot)、使用gghighlight包突出高亮线图的满足条件的线图、设置高亮线图不显示默认自动显示的文本标签(use_direct_label)
  2. STL 容器迭代器失效总结
  3. Ubuntu下的NBD和iscsi挂载
  4. vue选中点击的元素_vue中v-for循环选中点击的元素并对该元素添加样式操作
  5. android 相册 标签,在Android标签上,如何在图片下方显示文字?
  6. python中添加路径_python中添加模块导入路径的方法
  7. 暴风集团:9月21日起公司股票交易进入退市整理期
  8. CPU高获取其线程ID然后分析
  9. 虚拟机中CentOS系统安装流程
  10. sqoop从musql导入到hive中数据缺失
  11. python之集合操作 - |
  12. Item 27: 明白什么时候选择重载,什么时候选择universal引用
  13. Unity移动的三种方式
  14. mac上好用的压缩_Mac图片压缩工具(早晚用到,建议收藏)
  15. 计算机软件考试——嵌入式系统设计师 知识点汇总
  16. Thinkphp5.1整合支付宝APP支付
  17. 结婚证照片尺寸是多少?教你拍出好看的证件照照片
  18. 【七夕活动精选】致你的七夕礼物——3D Heart,跳动的 3D 爱心
  19. 人类像计算机一样思考 议论文,人工智能时代——人应像人一样思考作文800字...
  20. Efficient multi-keyword ranked query over encrypted data in cloud computing (6)

热门文章

  1. IT学子成长指导类文章链接(一)
  2. 安卓开发之SQLite数据库
  3. redis高效运维必知必会
  4. unexpected output in sfdisk --version解决方法
  5. radix-4 FFT 原理和C语言代码实现
  6. c语言 socket读取数据结构,socket编程常用的数据结构
  7. 清风数学建模学习笔记——系统(层次)聚类原理详解及案例分析
  8. Python 深入浅出 - 网络请求库 Requests
  9. IDEA 或 IntelliJ 全家桶提示 Missing associated label 解决办法
  10. federated引擎实现mysql跨服务器表连接