stm32学习:(寄存器1)控制寄存器来让led亮

  1. 开启时钟,先查找到开启时钟的寄存器,然后通过该寄存器操作时钟的开启或关闭,要打开的是GPIOA的时钟
    1. 在芯片手册,找到RCC寄存器描述章节
    2. 找到APB2外设时钟使能寄存器(RCC_APB2ENR),现在算RCC_APB2ENR这个寄存器的地址,先知道RCC这个外设的基地址,然后加上这个寄存器的偏移地址就行了
      1. RCC外设及地址在寄存器组起始地址表中查到,叫做复位和时钟控制(RCC),我查到的是0x40021000---0x400213FF,所以RCC这个外设的基地址为0x40021000
      2. 在APB2外设时钟使能寄存器(RCC_APB2ENR)下面可以看到偏移地址为0x18
      3. 所以RCC_APB2ENR的地址为0x40021000+0x18
    3. 有了地址就可以写入了
      1. 向第二位写入1,就是写入4
      2. 最终就是  *(uint32_t *)(0x40021000 + 0x18) = 4;
    4. 给IO口设置输出模式
      1. 需要先找到GPIOA的基地址,再根据偏移地址找到要使用的寄存器的地址
      2. GPIOA的基地址在寄存器组起始地址表中查到,我查到的是0x40010800---0x40010BFF
      3. 配置PA0口的输出模式的寄存器是GPIOA_CRL,推挽输出就是写入4
      4. 最后是   *(uint32_t *)(0x40010800 + 0x00) = 3;
    5. 给指定PA0口输出0就可以点亮LED1了
      1. 寄存器是ODR数据输出寄存器
      2. ODR寄存器的地址是 0x40010800 + 0x0c 。给这个地址的第0位写0,其他位写1
      3. 最后是    *(uint32_t *)((0x40010800 + 0x0c)) = 0xfffe;
    6. ST公司已经定义好外设寄存器地址,我们直接食用菌就好
      1. 最后是
        #include "stm32f10x.h"int main(void)
        {RCC->APB2ENR = 4;GPIOA->CRL = 3;GPIOA->ODR = 0xfffe;while (1){}
        }
        或者是
        #include "stm32f10x.h"int main(void)
        {/* 开启GPIOA的时钟 第2位置1*/RCC->APB2ENR |= 0x1 << 2;/* GPIOA_CRL的最后4位置 0011 */GPIOA->CRL &= ~(0x1 << 3);GPIOA->CRL &= ~(0x1 << 2);GPIOA->CRL |= 0x1 << 1;GPIOA->CRL |= 0x1 << 0;/* GPIOA_ODR的第0位置0 */GPIOA->ODR &= ~(0x1 << 0);while (1){}
        }
        或者是
        #include "stm32f10x.h"int main(void)
        {RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;GPIOA->CRL &= ~GPIO_CRL_CNF0_1;GPIOA->CRL &= ~GPIO_CRL_CNF0_0;GPIOA->CRL |= GPIO_CRL_MODE0_1;GPIOA->CRL |= GPIO_CRL_MODE0_0;GPIOA->ODR &= ~GPIO_ODR_ODR0;while (1){}
        }

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

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

相关文章

基于mcu固件反汇编逆向入门示例-stm32c8t6平台

基于mcu固件反汇编逆向入门示例-stm32c8t6平台 本文目标&#xff1a;基于mcu固件反汇编逆向入门示例-stm32c8t6平台 按照本文的描述&#xff0c;应该可以在对应的硬件上通实验并举一反三。 先决条件&#xff1a;拥有C语言基础&#xff0c;集成的开发环境&#xff0c;比如&am…

《背包乱斗》为什么好玩 苹果电脑怎么玩《背包乱斗》游戏 mac怎么玩steam windows游戏

在当今竞争激烈的游戏市场中&#xff0c;《背包乱斗》以其独特的魅力在众多作品中脱颖而出&#xff0c;吸引了大量玩家的关注和喜爱。其创新的游戏机制和不断迭代的内容&#xff0c;加之出色的视觉效果和社区建设&#xff0c;使其成为了游戏界的一股清流。 一、《背包乱斗》为…

《绝区零》是一款什么类型的游戏,Mac电脑怎么玩《绝区零》苹果电脑玩游戏怎么样

米哈游的《绝区零》最近在网上爆火呀&#xff0c;不过很多人都想知道mac电脑能不能玩《绝区零》&#xff0c;今天麦麦就给大家介绍一下《绝区零》是一款什么样的游戏&#xff0c;Mac电脑怎么玩《绝区零》。 一、《绝区零》是一款什么样的游戏 《绝区零》是由上海米哈游自主研发…

ES快速开发,ElasticsearchRestTemplate基本使用以及ELK快速部署

最近博主有一些elasticsearch的工作&#xff0c;所以更新的慢了些&#xff0c;现在就教大家快速入门&#xff0c;并对一些基本的查询、更新需求做一下示例&#xff0c;废话不多说开始&#xff1a; 1. ES快速上手 es下载&#xff1a;[https://elasticsearch.cn/download/]()这…

Spring Boot集成Activity7实现简单的审批流

由于客户对于系统里的一些新增数据&#xff0c;例如照片墙、照片等&#xff0c;想实现上级逐级审批通过才可见的效果&#xff0c;于是引入了Acitivity7工作流技术来实现&#xff0c;本文是对实现过程的介绍讲解&#xff0c;由于我是中途交接前同事的这块需求&#xff0c;所以具…

uniapp开发钉钉小程序流程

下载开发工具 1、小程序开发工具 登录钉钉开发平台&#xff0c;根据自己的需求下载合适的版本&#xff0c;我这里下载的是Windows &#xff08;64位&#xff09;版本 小程序开发工具 - 钉钉开放平台 2、HBuilder X HBuilderX-高效极客技巧 新建项目及相关配置 新建项目 …

单臂路由组网实验,单臂路由的定义、适用情况、作用

一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…

axios 下载大文件时,展示下载进度的组件封装——js技能提升

之前面试的时候&#xff0c;有遇到一个问题&#xff1a;就是下载大文件的时候&#xff0c;如何得知下载进度&#xff0c;当时的回复是没有处理过。。。 现在想到了。axios中本身就有一个下载进度的方法&#xff0c;可以直接拿来使用。 下面记录一下处理步骤&#xff1a; 参考…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细&#xff0c;因为没有介绍卷积操作的具体计算&#xff1b;但是它介绍了 CNN 各层次的功能…

golang AST语法树解析

1. 源码示例 package mainimport ("context" )// Foo 结构体 type Foo struct {i int }// Bar 接口 type Bar interface {Do(ctx context.Context) error }// main方法 func main() {a : 1 }2. Golang中的AST golang官方提供的几个包&#xff0c;可以帮助我们进行A…

[杂谈] 关于 Mac 电脑使用 Logitech 鼠标导致 Vscode 侧键无法进行代码前进、回退的问题

我个人使用的是一台 14 寸的 Mac_Apple_M1&#xff0c;外接键盘显示器罗技的 MX Master 3 for Mac 的鼠标。 之前一直使用的 GoLand 开发&#xff0c;查看代码时进行代码跳转就很方便&#xff0c;滚轮键 进入函数方法&#xff0c;鼠标侧键进行前进、后退。看代码完全可以右手单…

【大模型入门】LLM-AI大模型介绍

大语言模型 (LLM) 背景 &#x1f379;大语言模型 (Large Language Model) 是一种人工智能模型, 它们通常包含数千亿甚至更多的参数&#xff0c;并在大规模数据集上进行训练。大语言模型可以处理多种自然语言任务&#xff0c;如文本分类、问答、翻译、对话等等。 自然语言模型…

MQ基础1

对应B站视频&#xff1a; MQ入门-01.MQ课程介绍_哔哩哔哩_bilibili 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中&#xff0c;调用者发起请求后需要等待服务提供者执行业务返回结果后…

求立方体面积体积以及判断(c++)

代码&#xff1a; #include<iostream> using namespace std;class Cube { public:void setL(int l){m_L l;}int getL(){return m_L;}void setW(int w){m_W w;}int getW(){return m_W;}void setH(int h){m_H h;}int getH(){return m_H;}int calculateS(){return 2 * (…

netdata 监控软件安装与学习

netdata官网 netdata操作文档 前言&#xff1a; netdata是一款监控软件&#xff0c;可以监控多台主机也可以监控单台主机&#xff0c;监控单台主机时&#xff0c;开箱即用&#xff0c;web ui很棒。 环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux rel…

GD32F407VET6新建固件库工程并下载运行

零、所需文件及环境&#xff1a; 1、固件库的压缩包 GD32F4xx_Firmware_Library_V3.2.0.7z 官网 2、GD32F407的keil支持包 官网 兆易创新GigaDevice-资料下载兆易创新GD32 MCU 2、 keilkilll.bat 用来删除编译过程文件 可以不要 &#xff08;原子、野火资料里都有&…

算法金 | 来了,pandas 2.0

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今日 210/10000 Pandas 是一个强大的数据分析库&#xff0c;广泛应用于科学研究、金融分析、商业智能等领域。它提供了高效的数据结构…

[WUSTCTF2020]level4题解 入土为安的第三天

二叉树 Practice my Data Structure code..... Typing....Struct.....char....*left....*right............emmmmm...OK! Traversal! Traversal type 1:2f0t02T{hcsiI_SwA__r7Ee} Traversal type 2:20f0Th{2tsIS_icArE}e7__w Traversal type 3: //type3(&x[22]); No w…

C++基础篇(2)

目录 前言 1.缺省参数 2.函数重载 2.1函数重载的基本规则 ​编辑2.2注意事项 2.3 重载解析&#xff08;Overload Resolution&#xff09;--补充内容 3.引用 3.1引用的概念和定义 3.2引用的特性 3.3引用的使用 3.4const引用 4.指针和引用的关系 结束语 前言 上节小编…

感应灯光画纯电路开源版本

前言 之前那版灯光画用的从垃圾佬淘的电路板拼出来的&#xff0c;功能不全&#xff0c;显示效果不太好而且无法固定到相框上&#xff0c;这次改版用的嘉立创smt&#xff0c;贴了5片板子&#xff08;19元&#xff09;&#xff0c;功能上的改进是加了无极触摸调光、添加了黄白两…