基于寄存器的STM32操作流程

news2024/10/7 8:31:37

寄存器点灯

寄存器操作STM32的好处是不需要依靠外部文件,自由度更高,更为底层,但也更加繁杂。

通过寄存器点灯,需要按照电路结构与手册配置寄存器:

电路结构如下:可知需配置的GPIO为GPIOB5与GPIOE5。

 

在STM32中,一般外设需配置三个寄存器:

首先配置APB2外设时钟使能寄存器,

按手册,需配置IOPE(6位),IOPB(3位),使其为1,其余为0,则16进制为:0x00000048,代码为:

RCC->APB2ENR=0x00000048;

接着配置端口配置寄存器,

按原理图可知,需配置GPIOB5与GPIOE5,手册上5位为低寄存器,且输出模式需为通用推挽输出,最大速度为50HZ,则CNF为00,MODE为11,则20,21为1,其余赋值为0,写成16进制,为0x00300000,代码为:

GPIOE->CRL=0x00300000;//LED1
GPIOB->CRL=0x00300000;//LED0

即配置完毕。

配置端口输出数据寄存器:

按说明手册,ODR为1,则整体16进制值为0x00000040,则代码为

GPIOB->ODR=0x00000040;
GPIOB->ODR=0x00000040;

配置完毕。

接着依靠keil生成的可执行文件下入开发板即可,完整代码为:

#include "stm32f10x.h"                  // Device header
int main(void)
{
	RCC->APB2ENR=0x00000048;
	GPIOE->CRL=0x00300000;//LED1
  GPIOB->CRL=0x00300000;//LED0
	GPIOB->ODR=0x00000040;
  GPIOB->ODR=0x00000040;
	while(1)
	{}
}

现象为LED0与LED1一直亮。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1639944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习之基于Jupyter中国环境治理投资数据分析及可视化

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 机器学习之基于Jupyter中国环境治理投资数据分析及可视化项目是一个结合了机器学习和数据可视化技术的项目&#xf…

SoapUI-x64-5.7.2安装教程

http://localhost:49652/Test.asmx?WSDL 双击请求:

Word技巧:3种方法快速重复上一步操作

在编辑Word文档的时候,我们经常需要重复上一步操作,如果重复性的操作很多,就会很耽误时间,那怎么可以快速重复上一步操作呢?下面分享3种方法,一起来看看吧! 方法1:利用“格式刷”功能…

利用亚马逊云科技GenAI企业助手Amazon Q Business构建企业代码开发知识库

2024年五一节假日的前一天,亚马逊云科技正式重磅发布了云计算行业期待已久的服务——Amazon Q Business。Amazon Q Business是专为企业用户打造的一个开箱即用的完善而强大企业GenAI助手。企业用户只需要将Amazon Q Business连接到现有的企业内部数据源,…

【免费Java系列】大家好 ,给大家出一些今天学习内容的案例点赞收藏关注,持续更新作品 !

PS:每个内容块下都有教学博文的超链接,有需要可以点过去学习 ! 目录 匿名内部类 1. 实现接口 2. 继承抽象类 3. 实现事件处理 枚举 1. 定义一个简单的枚举类型 2. 枚举类型可以有属性和方法 3. 枚举类型可以实现接口 泛型 1. 定义一个泛型类 2. 使用泛型方法 3. 泛型…

华为手机 鸿蒙系统-android studio识别调试设备,开启adb调试权限

1.进入设置-关于手机-版本号,连续点击7次 认证:有锁屏密码需要输入密码, 开启开发者配置功能ok 进入开发者配置界面 打开调试功能 重新在androd studio查看可运行running devices显示了, 不行的话,重启一下android …

【Flask 系统教程 4】Jinjia2模版和语法

Jinjia2 模板 模板的介绍 Jinja2 是一种现代的、设计优雅的模板引擎,它是 Python 的一部分,由 Armin Ronacher 开发。Jinja2 允许你在 HTML 文档中嵌入 Python 代码,以及使用变量、控制结构和过滤器来动态生成内容。它的语法简洁清晰&#…

U盘未初始化?别慌,数据还有救!

当我们将U盘插入电脑,期待地打开“我的电脑”或文件管理器,却发现U盘显示为未初始化,这种心情无异于一盆冷水浇头。但先别急着慌张,这篇文章将带你了解U盘未初始化的原因,并提供有效的数据恢复方案,让你在遭…

24.5.2数据结构|顺序表实现

主要是记笔记,留着以后复习回来看的,有些内容解释的并不清晰。也就稍微可以借鉴借鉴。 目录 一、如何定义结构? 二、看书搞清楚顺序表实现流程 三、使用clion写代码 实现代码过程中的错误代码 一、如何定义结构? 应该有的部…

AI与电力

好多写AI会导致电力匮乏的消息,不绝于耳。然而大部分只能知其然,却不能知其所以然,为什么缺,怎么缺,缺多少,没什么答案也没什么可参考的。 我关注一个事情,一般先了解一下论点,然后重点看论据,最后再自己论证合理不。今天这篇文章主要聊一下数据层面上是谈一谈AI如何导…

微信小程序+esp8266温湿度读取

本文主要使用微信小程序显示ESP8266读取的温湿度并通过微信小程序控制LED灯。小程序界面如下图所示 原理讲解 esp8266 通过mqtt发布消息,微信小程序通过mqtt 订阅消息,小程序订阅后,就可以实时收到esp8266 传输来的消息。 个人可免费注册五个微信小程序账号,在微信小程序官…

Python_GUI框架 Pyside6的信号与槽应用

Python_GUI框架 Pyside6的信号与槽应用 在Pyside6框架中,信号与槽(Signals and Slots)机制是连接用户界面元素与响应功能的核心机制。我们可以把信号想象成一根电线,而槽就是电线的另一端连接的灯泡。当电线(信号&…

ubuntu 小工具

随着在专业领域待得越久,发现总会遇到各种奇怪的需求。因此,这里介绍一些ubuntu上的一些小工具。 meld 对比文件 sudo apt-get install meld sudo apt --fix-broken install # maybeHow to compare two files

量子城域网建设设备系列(二):量子密钥管系统(KMS)

在上文介绍光量子交换机的文章中我们提到,量子保密通信网络的通道切换是由量子密钥管理系统(Key Management System,KMS)给光量子交换机下发信道切换指令,实现整个网络中任意两对量子密钥分发终端的量子信道互联互通&a…

buuctf-misc-23.FLAG

23.FLAG 题目:stegsolve得出PK-zip文件,改后缀名为zip,解压后查看文件类型为ELF 使用kali-strings或者ida获取flag 点击Save Bin将其另存为一个zip文件 而后解压我们另存的这个1234.zip文件后,可以得到 我们用ida打开它,打开后就…

从零开始搭建一个vue项目

从零开始搭建一个vue项目 一、环境准备 1.1 安装node.js 选择合适的LTS版本,然后下载安装,安装地址:https://nodejs.org/en/download 在命令行中查看已安装的node.js版本 node -v v14.14.01.2 切换为淘宝的镜像源 解决国内下载慢的问题,…

45. UE5 RPG 使用元属性(Meta Attributes)以及使用Set by Caller修改伤害

在RPG游戏中,我们是不会直接修改生命值的属性,是因为在修改角色属性时,需要获取角色的属性并进行复杂的计算,所以,我们正常情况下使用元属性(Meta Attributes)作为计算的中间的媒。在服务器上先…

中间件之异步通讯组件RabbitMQ进阶

这里我们必须尽可能确保MQ消息的可靠性,即:消息应该至少被消费者处理1次 那么问题来了: 我们该如何确保MQ消息的可靠性? 如果真的发送失败,有没有其它的兜底方案? 首先,我们一起分析一下消息…

django设计模式理解FBV和CBV

在 Web 开发中,FBV(Function-Based Views)和 CBV(Class-Based Views)是两种常见的视图设计模式,用于处理 HTTP 请求并生成相应的响应。下面是它们的简要解释: Function-Based Views (FBV) 在 …

Mac环境下ollama部署和体验

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于ollama ollama和LLM(大型语言模型)的关系,类似于docker和镜像,可以在ollama服务中管理和运行各种LLM&…