STM32F767--->寄存器
文章目录
- IO 配置常用的 8 个寄存器
- MODER
- OTYPER
- OSPEEDR
- PUPDR
- ODR
- BSRR
- IDR
- AFRH & AFRL
- 串口通信用到的寄存器
- 外设时钟使能寄存器APB2ENR
- 串口波特率设置寄存器USART_BRR
- 串口控制寄存器USART_CR1~3
- DMA(直接存储器)相关寄存器
- DMA中断状态寄存器DMA_LISR/DMA_HISR
- DMA 中断标志清除寄存器DMA_LIFCR /DMA_HIFCR
- DMA 数据流 x 配置寄存器DMA_SxCR(x=0~7)
- 数据流 x 数据项数寄存器(DMA_SxNDTR)
- 数据流 x 的外设地址寄存器(DMA_SxPAR)
- 数据流 x 的存储器地址寄存器
IO 配置常用的 8 个寄存器
MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR 、AFRH 和 AFRL。
MODER
MODER 寄存器,该寄存器是 GPIO 端口模式控制寄存器,用于控制 GPIOx(STM32F7 最多有 9 组 IO,分别用大写字母表示,即 x=A/B/C/D/E/F/G/H/I,下同)的工作模式,
OTYPER
OTYPER 寄存器,该寄存器用于控制 GPIOx 的输出类型,该寄存器仅用于输出模式,在输入模式(MODER[1:0]=00/11 时)下不起作用。该寄存器低 16 位有效,每一个位控制一个 IO 口。设置为 0 是推挽输出,设置为 1 是开漏输出。复位后,该寄存器值均为 0,也就是在输出模式下 IO 口默认为推挽输出。
OSPEEDR
OSPEEDR 寄存器,该寄存器用于控制 GPIOx 的输出速度,该寄存器也仅用于输出模式,在输入模式(MODER[1:0]=00/11 时)下不起作用。该寄存器每 2 个位控制一个 IO 口,复位后,该寄存器值一般为 0。
PUPDR
PUPDR寄存器,该寄存器用于控制 GPIOx 的上拉/下拉,该寄存器每 2 个位控制一个 IO 口,用于设置上下拉,STM32F1 是通过 ODR寄存器控制上下拉的,而 STM32F7 则由单独的寄存器PUPDR控制上下拉,使用起来更加灵活。复位后,该寄存器值一般为 0。
ODR
ODR 寄存器,该寄存器用于控制 GPIOx 的输出电平,该寄存器用于设置某个 IO 输出低电平(ODRy=0)还是高电平(ODRy=1),该寄存器也仅在输出模式下有效,在输入模式(MODER[1:0]=00/11 时)下不起作用。
BSRR
寄存器 BSRR,它叫置位/复位(置1/清零)寄存器。该寄存器和 ODR寄存器具有类似的作用,都可以用来设置 GPIO 端口的输出位是 1 还是 0。
IDR
IDR 寄存器,该寄存器用于读取 GPIOx 的输入数据,该寄存器用于读取某个 IO 的电平,如果对应的位为 0(IDRy=0),则说明该 IO 输入的是低电平,如果是 1(IDRy=1),则表示输入的是高电平。
AFRH & AFRL
AFRH & AFRL这两个寄存器是用来设置 IO 口的复用功能的
串口通信用到的寄存器
外设时钟使能寄存器APB2ENR
串口1在APB2ENR 寄存器的第 4 位,串口6也在APB2ENR 寄存器中
串口波特率设置寄存器USART_BRR
每个串口都有一个自己独立的波特率寄存器 USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的。
串口控制寄存器USART_CR1~3
STM32F767 的每个串口都有 3 个控制寄存器 USART_CR1~3,串口的很多
配置都是通过这 3 个寄存器来设置的。
DMA(直接存储器)相关寄存器
DMA中断状态寄存器DMA_LISR/DMA_HISR
DMA_LISR 和 DMA_HISR,每个寄存器管理 4 数据流(总共 8 个),DMA_LISR 寄存器用于管理数据流 0~3,而 DMA_HISR 用于管理数据流 4~7。这两个寄存器各位描述都完全一模一样,只是管理的数据流不一样。通过这两个寄存器可以获取数据的传输状态
如果开启了 DMA_LISR 中这些位对应的中断,则在达到条件后就会跳到中断服务函数里面去,即使没开启,我们也可以通过查询这些位来获得当前 DMA 传输的状态。这里我们常用的是 TCIFx位,即数据流 x 的 DMA 传输完成与否标志。注意此寄存器为只读寄存器,所以在这些位被置位之后,只能通过其他的操作来清除。DMA_HISR 寄存器各位描述通 DMA_LISR 寄存器各位描述完全一样,只是对应数据流 4~7.
DMA 中断标志清除寄存器DMA_LIFCR /DMA_HIFCR
DMA_LIFCR /DMA_HIFCR,同样是每个寄存器控制 4 个数据流,DMA_LIFCR 寄存器用于管理数据流 0~3,而 DMA_ HIFCR 用于管理数据流 4~7。DMA_LIFCR 的各位就是用来清除 DMA_LISR 的对应位的,通过写 1 清除。在 DMA_LISR 被置位后,我们必须通过向该位寄存器对应的位写入 1 来清除。DMA_HIFCR 的使用同 DMA_LIFCR 类似。
DMA 数据流 x 配置寄存器DMA_SxCR(x=0~7)
该寄存器控制着 DMA 的很多相关信息,包括数据宽度、外设及存储器的宽度、优先级、增量模式、传输方向、中断允许、使能等都是通过该寄存器来设置的。所以 DMA_ SxCR 是 DMA 传输的核心控制寄存器。
数据流 x 数据项数寄存器(DMA_SxNDTR)
第四个是 DMA 数据流 x 数据项数寄存器(DMA_SxNDTR)。这个寄存器控制 DMA 数据流 x 的每次传输所要传输的数据量。其设置范围为 0~65535。并且该寄存器的值会随着传输的进行而减少,当该寄存器的值为 0 的时候就代表此次数据传输已经全部发送完成了。所以可以通过这个寄存器的值来知道当前 DMA 传输的进度。特别注意,这里是数据项数目,而不是指的字节数。比如设置数据位宽为 16 位,那么传输一次(一个项)就是 2 个字节。
数据流 x 的外设地址寄存器(DMA_SxPAR)
该寄存器用来存储 STM32F767 外设的地址,比如我们使用串口 1,那么该寄存器必须写入 0x40011028(其实就是&USART1_TDR)。如果使用其他外设,就修改成相应外设的地址就行了。
数据流 x 的存储器地址寄存器
由于 STM32F767 的 DMA 支持双缓存,所以存储器地址寄存器有两个:DMA_SxM0AR 和 DMA_SxM1AR,其中 DMA_SxM1AR 仅在双缓冲模式下才有效。
STM32F767--->寄存器相关推荐
- stm32f767中文手册_ALIENTEK 阿波罗 STM32F767 开发板资料连载第五章 SYSTEM 文件夹
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第五章 SYSTEM 文 ...
- cc2530定时器和捕获比较_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...
- STM32-GPIO学习-跑马灯实验和按键实验-寄存器版本和HAL库版本
一.stm32跑马灯实验 a.GPIO general purpose input output 通用输入输出端口,可以做输入也可做输出,GPIO端口可通过程序配置成输入或输出. STM32FXXXI ...
- fastreport masterdata每页都显示_ALIENTEK 阿波罗 STM32F767 开发板资料连载十六章 OLED 显示实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...
- STM32F767 QUADSPI 的基本用法
#转载:本文介绍 STM32F767 QUADSPI 的基本用法. 开发环境 硬件环境 电脑:Windows 10 Home x64 Apollo STM32F767 开发板 (ST-LINK V2 ...
- STM32F767多通道ADC采集+DMA传输
文章目录 一.ADC简介 1.ADC采样频率 2.ADC转换时间 3.ADC寄存器 4.ADC引脚与外部通道对应关系 二.DMA简介 三.代码配置 1.ADC.DMA初始化配置 2.adc.h文件的配 ...
- STM32F767 Timer定时器与Usart串口综合实训
基于B站小蜜蜂笔记!本文利用STM32F767开发板实现该实训! 题目要求: 利用STM32应用开发,完成以下功能. 1.开机后,LED0和LED1依次点亮,然后熄灭,进行灯光检测. 2.系统通过串口 ...
- STM32F767芯片在使用中的注意点(一)
1.STM32F767的ADC最大工作频率是36Mhz,而 ADC 时钟(ADCCLK)来自 APB2,APB2 频率一般是 108Mhz,我们设置 ADCPRE=01,即4 分频,这样得到 ADCC ...
- STM32F767/429-CAN通信实验
CAN 简介 特点 CAN协议进行方法:帧 数据帧 基本构成 各段简介 CAN的位时序 CAN协议仲裁功能的实现 bxCAN 的主要特点 CAN 发送流程 CAN 接收流程 寄存器 主控制寄存器(CA ...
最新文章
- ubuntu python版本切换_ubuntu18.04 python版本切换
- 基于工程经验的『RESTful接口设计规范』
- Effective Java之用EnumSet代替位域(三十二)
- JS中深浅拷贝 函数封装代码
- 突击计划——求数列之和
- IntelliCAD 2009 Pro Plus v6.4.23.2 1CD
- 华为手机word插件加载失败_word加载项启动失败
- [渝粤教育] 西南科技大学 英语泛读 在线考试复习资料
- 【个人亲历】上海市人才引进落户最详细的流程记录说明
- 狗是人类最忠诚的伙伴,当狗遇到不同的人会有不同的反应,下面要求编写一个案例模拟狗遇到不同的人时的反应。
- 直播继续搅局双11?
- python中使用pip提示: Fatal error in launcher: Unable to create process using
- Json 解析报错 InvalidCastException: Null object cannot be converted to a value type.
- 企业与组织仍然没有实现无纸化的三大原因
- linux安装tomcat
- 音视频学习之ffmpeg时间戳相关整理(时间基tbr,tbn,tbc)
- 助理电子商务师html,助理电子商务师考试HTML相关试题汇总.doc
- Webix - JavaScript UI 9.2.0
- 进DNF选频道时为什么会蓝屏啊
- 自学管理学有哪些书籍值得推荐?