STM32单片机的CRL和CRH寄存器
这里写目录标题
- 问题:
- 基础知识:
- 解释:
- 扩展
- PA1为输入(上/下拉)
- PA2为输入(上/下拉)
- PA1为输出(通用推挽输出50MHZ)
- PA2为输出(通用推挽输出50MHZ)
问题:
当32单片机进行引脚分配时,需要了解该程序的功能。
基础知识:
STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:
配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH;
2 个 32 位的数据寄存器 IDR 和 ODR;
1 个 32 位的置位/复位寄存器BSRR;
一个 16 位的复位寄存器 BRR;
1 个 32 位的锁存寄存器 LCKR;
我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR。CRL 和 CRH 控制着每个 IO 口的模式及输出速率。
其中CRL配置规则
其中CRH配置规则
解释:
1、输入
GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8<<0;
①前半段GPIOA->CRL&=0XFFFFFFF0;
利用“与”运算,把这个位清0,同时不影响其他的位的设置。
此时把PA0设置成模拟输入模式。
②后半段GPIOA->CRL|=8<<0;
意思就是将8(1000)左移0位(不移位),然后再与GPIOC->CRL进行或运算。
此时把PA0设置成上拉/下拉输入模式。
2、输出
GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3<<0;
①前半段GPIOA->CRL&=0XFFFFFFF0;
利用“与”运算,把这个位清0,同时不影响其他的位的设置。
此时把PA0设置成模拟输入模式。
②后半段GPIOA->CRL|=3<<0;
意思就是将3(0011)左移0位(不移位),然后再与GPIOC->CRL进行或运算。
此时把PA0设置成通用推挽输出模式。
扩展
PA1为输入(上/下拉)
GPIOA->CRL&=0XFFFFFF0F;GPIOA->CRL|=8<<4;
PA2为输入(上/下拉)
GPIOA->CRL&=0XFFFFF0FF;GPIOA->CRL|=8<<8;
PA1为输出(通用推挽输出50MHZ)
GPIOA->CRL&=0XFFFFFF0F;GPIOA->CRL|=3<<4;
PA2为输出(通用推挽输出50MHZ)
GPIOA->CRL&=0XFFFFF0FF;GPIOA->CRL|=3<<8;
以此类推。
STM32单片机的CRL和CRH寄存器相关推荐
- STM32——GPIO的CRL、CRH和CNF与MODE的关系
GPIO的CRL.CRH和CNF与MODE的关系 STM32的CRL控制着每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE. CRH的作用和CRL完全一样,只是CRL控制的是低8位 ...
- STM32单片机的GPIO寄存器CRL、CRH、IDR、ODR、BRSS、BRR
STM32的寄存器多如牛毛,要一个一个的弄清楚谈何容易呀,所以我们在学习的时候要抓住重点,挑重要的进行学习和记忆,因为STM32一个一个去配置寄存器的话相当的麻烦,我们实际开发的话也不会一个一个去配置 ...
- STM32单片机硬件I2C驱动程序(查询方式)
本文章原始地址:http://feotech.com/?p=69 本程序主要用于驱动STM32单片机芯片的硬件I2C寄存器,实现通过使用芯片自带的I2C寄存器进行数据的发送与接收. 本例程中采用I2C ...
- STM32单片机硬件I2C驱动程序(软件轮询方式)---摘自:FeoTech
感谢原作者:FeoTech 原文网址:http://feotech.com/?p=69 本程序主要用于驱动STM32单片机芯片的硬件I2C寄存器,实现通过使用芯片自带的I2C寄存器进行数据的发送与 ...
- crh寄存器_CRL,CRH寄存器
在移植ds18b20时看到这样一段代码 #define DS18B20_IO_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<1 ...
- STM32 GPIO的配置寄存器(CRL、CRH)输入输出模式配置
STM32 GPIO的配置寄存器(CRL.CRH)输入输出模式配置 1.学会使用寄存器设定所需IO的方向,学会配置CRL.CRH 2.理解如下代码的含义 //IO方向设置 #define DS18B2 ...
- STM32 GPIO的配置寄存器(CRL、CRH)快速学习
1.问题 在使用STM32的时候配置GPIO是最常见的操作,可以使用比较简单明白的库函数配置,但很繁杂.使用寄存器的方式可以快速配置,对于同一个IO口的输入输出都需要使用到的时候,比如IIC通讯的SD ...
- STM32之GPIO的CRL、CRH、IDR、ODR、BSRR、BRR、LCKR寄存器
STM32中控制GPIO状态的一共有7个寄存器,分别是CRL.CRH.IDR.ODR.BSRR.BRR.LCKR. 调用即可看到选项
- stm32点亮LED的有关寄存器配置CRL、CRH、IDR、ODR
1.先了解io口 32的io口可以由软件配置寄存器为8种模式: 1.输入浮空 5.开漏输出 2.输入上拉 6.推挽输出 3.输入下拉 7.推挽式复用功能 4.模拟输入 8.开漏复用功能 单io口寄存器 ...
最新文章
- Gitlab Issue Tracker and Wiki(一)
- 响应式网站——第二话(技术实现)
- 【NLP】bert4vec:一个基于预训练的句向量生成工具
- openvswitch2.8.1 centos7.4 源码编译安装
- 三个彩灯循环点亮程序_近百组彩灯点亮江畔,义渡灯会正式亮灯啦
- php文本框自动补全,PHP自动补全表单的两种方法
- KubeVela v1.3 多集群初体验,轻松管理应用分发和差异化配置
- 【转】Java垃圾收集器
- 电容有哪些用途?常见的九大作用
- 抖音视频根据用户ID下载方法
- 我喜欢生命本来的样子--周国平
- Web前端开发技术课程大作业——南京旅游景点介绍网页代码html+css+javascript
- MySQL报错端口3306解决方法
- whistle-安卓手机配置代理
- 无法成功完成操作,因为文件包含病毒或潜在的垃圾软件。
- java分哪几部分_Java体系主要分为三部分,下列哪个选项不是其中的一个组成部分?...
- 关于 MDD(度量驱动开发)的一些思考
- java中日期格式大小写标准写法
- 【友小盟看世界】数据向善:寻亲32年后找回被拐儿子!全国打拐第一数据库立功...
- Ubuntu随身系统