crh寄存器_牛人的STM32学习笔记(寄存器版本).doc
牛人的STM32学习笔记(寄存器版本)
一、GPIO口的配置
STM32的DGPIO口最多可以有7组(GPIOa~GPIOg),而每一组GPIO口均有16个双向IO组成。并且没个IO口均可配置成8种模式(4种输入模式,4种输出模式)。不管配置哪个IO口也不论将其配置成哪种模式(但是配置成哪种模式要看具体应用,参考《中文参考手册》第105页)都可以按以下步骤来进行配置:
使能PORTx(x=A~G)时钟
这里就得操作寄存器RCC_APB2ENR(32为寄存器)了
15141312111098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENIOPGEN76543210IOPFENIOPEENIOPDENIOPCENIOPBENIOPAEN保留AFIOEN3130292827262524CNF7[1:0]MODE7[1:0]CNF6[1:0]MODE6[1:0]2322212019181716CNF5[1:0]MODE5[1:0]CNF4[1:0]MODE4[1:0]15141312111098CNF3[1:0]MODE3[1:0]CNF2[1:0]MODE2[1:0]76543210CNF1[1:0]MODE1[1:0]CNF0[1:0]MODE0[1:0]
GPIOx_CRL(x=A~G(端口配置低寄存器x=A…E)
该寄存器用于配置GPIOx的低8位,具体8种模式的配置见《中文参考手册》例如: GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL|=0/PD.2推挽输出;其余IO口的低8位以此类推。
3130292827262524CNF15[1:0]MODE15[1:0]CNF14[1:0]MODE14[1:0]2322212019181716CNF13[1:0]MODE13[1:0]CNF12[1:0]MODE12[1:0]15141312111098CNF11[1:0]MODE11[1:0]CNF10[1:0]MODE10[1:0]76543210CNF9[1:0]MODE9[1:0]CNF8[1:0]MODE8[1:0]
GPIOx_CRH(端口配置高寄存器x=A…E)
该寄存器用于配置GPIOx的高8位,具体8种模式的配置见《中文参考手册》例如:
GPIOA->CRH&=0XFFFFFFF0;;GPIOA->CRH|=0//PA8 推挽输出;其余IO口的高8位以此类推。
端口的输入和输出电平配置
15141312111098IDR15IDR14IDR13IDR12IDR11IDR10IDR9IDR876543210IDR7IDR6IDR5IDR4IDR3IDR2IDR1IDR0
GPIOx_IDR(端口输入数据寄存器x=A…E)
该寄存器配置IO口的0~15位的输入数据,以16位读出。
15141312111098ODR15ODR14ODR13ODR12ODR11ODR10ODR9ODR876543210ODR7ODR6ODR5ODR4ODR3ODR2ODR1ODR0
GPIOx_ODR(端口输出数据寄存器x=A…E)
该寄存器配置IO口的0~15位的输入初始状态,例如:GPIOA->ODR|=1<<13;//PA13上拉输入
一般GPIO口配置可仿以下两个程序:
void KEY_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0
GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入
GPIOA->CRH|=0
GPIOA->ODR|=1<<13; /
crh寄存器_牛人的STM32学习笔记(寄存器版本).doc相关推荐
- SPI 读取不同长度 寄存器_敏矽微电子Cortex-M0学习笔记10-SPI通信详解
1.SPI简介 ME32F030支持扩展的 SPI (Serial Peripheral interface)接口,它可以支持标准的 SPI 操作,兼容 4 线的 SSI (SynchronousSe ...
- 嵌入式学习笔记——寄存器实现控制LED小灯
文章目录 前言 GPIO通用输出模式 初始化LED小灯的GPIO 原理图 初始化代码 初始化的效果 功能函数封装 直接分开宏定义两个 使用条件运算符 封装函数实现简单的功能 KEIL MDK一些技巧 ...
- 《STM32学习笔记》4——核心功能电路与编程(下)
接上文,文中的图片,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.蜂鸣器驱动 1.蜂鸣器介绍 2.蜂鸣器电路 3.蜂鸣器程序 二. MIDI 音乐 ...
- STM32学习笔记 | 引起电源和系统异常复位的原因
关注+星标公众号,不错过精彩内容 每一块处理器都有复位的功能,不同处理器复位的类型可能有差异,引起复位的原因也可能有多种. STM32的复位功能非常强大,可通过软件.硬件和一些事件触发系统复位,而且通 ...
- STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)
本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...
- STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)
本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...
- STM32学习笔记(15)——SPI协议
STM32学习笔记(15)--SPI协议 一.SPI协议简介 1. 物理层 2. 协议层 (1) 通讯的开始与停止 (2)时钟极性CPOL.时钟相位CPHA 二.STM32的SPI外设 1. 通讯引脚 ...
- STM32学习笔记(13)——模数转换ADC
这个月一直忙于准备考试,已经考完一半科目了,偷闲写了这篇文章.因为还没考完试,估计还得咕一段时间了. STM32学习笔记(13)--模数转换ADC 第一部分:ADC功能框图 一.输入电压 二.输入通道 ...
- STM32学习笔记(八)丨ADC模数转换器(ADC单、双通道转换)
本篇文章包含的内容 一.ADC 模数转换器 1.1 ADC简介 1.2 逐次逼近型ADC工作原理 1.3 STM32中的ADC基本结构 1.4 STM32中ADC的输入通道 1.5 STM32中的AD ...
最新文章
- 只有20%的iOS程序员能看懂:详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance
- 只此一招,全屏操作从此易如反掌
- LinkedHashMap源码剖析
- python安装第三方库win10_在win里anaconda怎么安装第三方的库
- WordPress网站搬家教程(根目录程序+ MySQL数据库)
- 开关灯(信息学奥赛一本通-T1109)
- 如何编写杂项设备驱动
- servlet container:tomcat jetty and undertow
- Java安全的发布对象
- 计算机主机电源灯不亮,电脑电源指示灯不亮怎么回事
- _beginthread 和 CreateThread 区别
- 综合评价模型的缺点_综合评价方法这么多,我该怎么选
- NOTEXPRESS 链接文件夹——让题录在文件夹中共享
- 组网 三层交换机配置
- 查询快递单号物流,自动识别出物流是否签收
- 报错 AttributeError: ‘scipy.spatial.transform._rotation.Rotation‘ object has no attribute ‘as_dcm‘
- OA和BPM有什么区别?企业应该如何选型
- 名帖109 鲜于枢 小楷《老子道德经卷》
- uni-app开发的微信小程序隐藏返回首页按钮
- 遥感影像去背景 之 数据裁剪
热门文章
- 以梦为马,越骑越傻。诗和远方,越走越慌
- 蓝桥杯刷题日记 更新到2022/2/5
- Sql server AlwaysOn搭建常见问题
- [SugerTangYL] 简易电子时钟Verilog设计
- 【解决方法】友盟分享 已安装QQ,但总提示“没有安装手机QQ客户端”
- ❤️交房步骤和注意事项❤️
- ACM常用英文术语翻译
- LVTTL与LVCMOS区别
- 疲劳驾驶数据集_Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...
- 时间在一分一秒的流逝着