当前位置: 首页 > article >正文

STM32学习-Day4-寄存器开发流程

目录

一、STM32寄存器开发流程

1、查看原理图

2、分析原理图

3、查阅参考手册(中文)

4、分析参考手册

(1)端口配置低寄存器

(2)端口配置高寄存器

(3)端口输入数据寄存器

(4)端口输出数据寄存器

(5)端口位设置/清除寄存器

(6)端口位清除寄存器

(7)端口配置锁定寄存器

二、案例Demo

1、点亮LED

2、按键控制LED


一、STM32寄存器开发流程

        不管是图形界面还是函数库开发,本质都是对硬件的寄存器进行配置,只不过函数库开发和图形界面开发都是ST公司的开发人员帮用户提前配置好了硬件的寄存器,并把配置过程封装在函数接口中,所以用户可以直接调用对应的函数接口,提高开发效率,但是使用函数库开发(STD or HAL)或者图形界面开发的缺点是代码运行效率比较低,因为函数可能嵌套调用函数,而且函数调用过程会占用堆栈空间。

        如果项目对实时性要求比较高的情况下,开发人员应该直接通过配置寄存器的方式控制硬件,目的是提高程序的运行效率以及节约内存。

1、查看原理图

找到控制发光二极管的芯片的IO口,其他引脚类似!!

2、分析原理图

理解硬件的控制原理(复杂外设还需要结合数据手册),输出低电平就亮。

3、查阅参考手册(中文)

查阅ST公司提供的和STM32F4系列相关的芯片的参考手册(中文),查阅GPIO寄存器。

4、分析参考手册

分析参考手册,理解寄存器的控制原理以及计算寄存器的物理地址,具体流程如下图

(1)端口配置低寄存器

(2)端口配置高寄存器

(3)端口输入数据寄存器

(4)端口输出数据寄存器

(5)端口位设置/清除寄存器

(6)端口位清除寄存器

(7)端口配置锁定寄存器

想要控制寄存器,则需要访问寄存器的物理地址,物理地址是可以计算的,利用芯片的数据手册

总线地址=基地址+偏移地址

利用寄存器的地址去访问寄存器,通过C语言的指针(要把寄存器的地址转换为指针)

二、案例Demo

1、点亮LED

利用寄存器的方式实现控制开发板点亮LED0 (提示:找到RCC关于AHB1外设时钟寄存器)

2、按键控制LED

利用寄存器的方式实现通过KEY0按键控制LED0的亮灭(提示:需要获取按键的状态)


http://www.kler.cn/a/594197.html

相关文章:

  • 电源电路篇
  • 深入理解 Vue 3 项目结构与运行机制
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part10
  • redis的key是如何找到对应存储的数据原理
  • 微软产品的专有名词和官方视频教程
  • labview与西门子1500plc进行S7通讯(仿真效果)
  • 在网页跑3D多人互动之渲染效能瓶颈
  • 连续出现的字符(信息学奥赛一本通-1148)
  • 从零开始使用C++完成串口助手(一)
  • mapbox基础,加载marker点位,测试大数据量加载性能问题
  • 分布式中间件:RabbitMQ死信队列和延迟队列
  • Android Opengl(九)FBO帧缓冲示例
  • UI设计中的对比与统一:构建和谐界面的原则
  • PyTorch模型转ONNX例子
  • Unity URP 实现场景和UI添加后处理
  • 知识库--Milvus
  • WordPress靶场攻略
  • php 要达到go的性能,应该如何优化php
  • 【蓝桥杯python研究生组备赛】005 数学与简单DP
  • 【CXX-Qt】2.1 构建系统