2023.12.21:烧录三个led灯

news2024/11/22 11:19:55



.text 
.global _start
_start: 
/*---------------------------------LD1------------------------------------------------*/
        @设置GEIOE时钟使能  RCC_MP_AHB4ENSETR[4]->1   0x50000A28
        LDR R0,=0X50000A28     @指定寄存器的地址
        LDR R1,[R0]    @将寄存器数值取出来放在R1中
        ORR R1,R1,#(0X1<<4)     @讲第4为设置为1
        STR R1,[R0]    @ 将修改之后的值写回去

        @设置PE10为输出    GPIOE_MODER[21:20]->01    0x50006000
        LDR R0,=0X50006000                 @指定寄存器地址
        LDR R1,[R0]                                   @将寄存器数值取出来放在r1中
        BIC R1,R1,#(0X3<<20)               @将[21:20]位设置为01
        ORR R1,R1,#(0X1<<20)            
        STR R1,[R0]                            @将修改后的值写回去

        @设置PE10为推挽输出  GPIOE_OTYPER[10]->0   0x50006004
          LDR R0,=0X50006004     @指定寄存器的地址
        LDR R1,[R0]    @将寄存器数值取出来放在R1中
        BIC R1,R1,#(0X1<<10)     @讲第10位设置为1
        STR R1,[R0]     @将修改之后的值写回去
        
        @设置PE10为低速输出  GPIOE_OSPEEDR[21:20] ->00   0x50006008
        LDR R0,=0X50006008          @指定寄存器的地址
        LDR R1,[R0]                                  @将寄存器数值取出来放在R1中
        BIC R1,R1,#(0X3<<20)                   @将[21:20]位设置为01
        STR R1,[R0]                                 @将修改后的值写回去

        @设置PE10输出时无上拉下拉电阻  GPIOE_PUPDR[21:20] ->00   0x5000600C
         LDR R0,=0X5000600C              @指定寄存器的地址
        LDR R1,[R0]                                 @将寄存器数值取出来放在R1中
        BIC R1,R1,#(0X3<<20)              @将[21:20]位设置为01
        STR R1,[R0]                                 @将修改后的值写回去
/*-----------------------------------------------LD2-------------------------------------------------------*/

          @设置GEIOE时钟使能  RCC_MP_AHB4ENSETR[4]->1   0x50000A28
        LDR R0,=0X50000A28     @指定寄存器的地址
        LDR R2,[R0]    @将寄存器数值取出来放在R1中
        ORR R2,R2,#(0X1<<5)     @讲第4为设置为1
        STR R2,[R0]    @ 将修改之后的值写回去

        @设置PF10为输出    GPIOF_MODER[21:20]->01    0x50007000
        LDR R5,=0X50007000  
        LDR R2,[R5]
        BIC R2,R2,#(0X3<<20)
        ORR R2,R2,#(0X1<<20)
        STR R2,[R5]

        @设置PF10为推挽输出  GPIOF_OTYPER[10]->0   0x50007004
          LDR R5,=0X50007004     @指定寄存器的地址
        LDR R2,[R5]    @将寄存器数值取出来放在R1中
        BIC R2,R2,#(0X1<<10)     @讲第10位设置为1
        STR R2,[R5]     @将修改之后的值写回去
        
        @设置PF10为低速输出  GPIOF_OSPEEDR[21:20] ->00   0x50007008
        LDR R5,=0X50007008 
        LDR R2,[R5]
        BIC R2,R2,#(0X3<<20)
        STR R2,[R5]

        @设置PF10输出时无上拉下拉电阻  GPIOE_PUPDR[21:20] ->00   0x5000700C
         LDR R5,=0X5000700C  
        LDR R2,[R5]
        BIC R2,R2,#(0X3<<20)
        STR R2,[R5]
/*---------------------------------------------------LD3-------------------------------------------------------*/
          @设置GEIOE时钟使能  RCC_MP_AHB4ENSETR[4]->1   0x50000A28
        LDR R0,=0X50000A28     @指定寄存器的地址
        LDR R3,[R0]    @将寄存器数值取出来放在R1中
        ORR R3,R3,#(0X1<<4)     @讲第4为设置为1
        STR R3,[R0]    @ 将修改之后的值写回去

        @设置PE8为输出    GPIOE_MODER[17:16]->01    0x50006000
        LDR R0,=0X50006000  
        LDR R3,[R0]
        BIC R3,R3,#(0X3<<16)
        ORR R3,R3,#(0X1<<16)
        STR R3,[R0]

        @设置PE8为推挽输出  GPIOE_OTYPER[8]->0   0x50006004
          LDR R0,=0X50006004     @指定寄存器的地址
        LDR R3,[R0]    @将寄存器数值取出来放在R1中
        BIC R3,R3,#(0X1<<8)     @讲第10位设置为1
        STR R3,[R0]     @将修改之后的值写回去
        
        @设置PE8为低速输出  GPIOE_OSPEEDR[17:16] ->00   0x50006008
        LDR R0,=0X50006008 
        LDR R3,[R0]
        BIC R3,R3,#(0X3<<16)
        STR R3,[R0]

        @设置PE8输出时无上拉下拉电阻  GPIOE_PUPDR[17:16] ->00   0x5000600C
         LDR R0,=0X5000600C  
        LDR R3,[R0]
        BIC R3,R3,#(0X3<<16)
        STR R3,[R0]

/*---------------------------------------------------------------------------------------------------------*/
/*
loop:
        @设置PE10输出高电平  GPIOE_ODR[10]->1    0x50006014
        LDR R0,=0X50006014
        LDR R1,[R0]
        ORR R1,R1,#(0X1<<10)
        STR R1,[R0]

        ldr r3,[r0]
        orr r3,r3,#(0x1<<8)
        str r3,[r0]

        ldr r5,=0x50007014
        ldr r2,[r5]
        orr r2,r2,#(0x1<<10)
        str r2,[r5]
      
        b loop
*/
flash:
        bl led_on
        bl delay
        bl led_off
        bl delay
        bl flash

led_on:
             @设置PE10输出高电平  GPIOE_ODR[10]->1    0x50006014
        LDR R0,=0X50006014
        LDR R1,[R0]
        ORR R1,R1,#(0X1<<10)
        STR R1,[R0]

         ldr r3,[r0]
        orr r3,r3,#(0x1<<8)
        str r3,[r0]

        ldr r5,=0x50007014
        ldr r2,[r5]
        orr r2,r2,#(0x1<<10)
        str r2,[r5]

        mov pc,lr

led_off:
             @设置PE10输出高电平  GPIOE_ODR[10]->1    0x50006014
        LDR R0,=0X50006014
        LDR R1,[R0]
        BIC R1,R1,#(0X1<<10)
        STR R1,[R0]

        ldr r3,[r0]
        bic r3,r3,#(0x1<<8)
        str r3,[r0]

        ldr r5,=0x50007014
        ldr r2,[r5]
        bic r2,r2,#(0x1<<10)
        str r2,[r5]
        mov pc,lr

delay:
        ldr r4,=0x10000000

mm:
        cmp r4,#0
        subne r4,r4,#1
        bne mm
        mov pc,lr




.end

效果图

思维导图

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

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

相关文章

7-高可用-回滚机制

事务回滚 在执行数据库SQL时&#xff0c;如果我们检测到事务提交冲突&#xff0c;那么事务中所有已执行的SQL要进行回滚&#xff0c;目的是防止数据库出现数据不一致。对于单库事务回滚直接使用相关SQL即可。 如果涉及分布式数据库&#xff0c;则要考虑使用分布式事务&#x…

Jenkins的文档翻译

官网Jenkins.io Jenkins用户文档 欢迎来到Jenkins用户文档-为那些想要使用Jenkins的现有功能和插件特性的人。如果你想通过开发自己的Jenkins插件来扩展Jenkins的功能&#xff0c;请参考extend Jenkins(开发者文档)。 詹金斯是什么? Jenkins是一个独立的、开源的自动化服务…

STM32-ADC模数转换器

目录 一、ADC简介 二、逐次逼近型ADC内部结构 三、STM32内部ADC转换结构 四、ADC基本结构 五、输入通道 六、转换模式 6.1单次转换&#xff0c;非扫描模式 6.2连续转换&#xff0c;非扫描模式 6.3单次转换&#xff0c;扫描模式 6.4连续转换&#xff0c;扫描模式 七、…

网线的制作集线器交换机路由器的配置--含思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 一、网线的制作 1、网线的材料有哪些&#xff1f; 网线 网线是一种用于传输数据信号的电缆&#xff0c;广泛应…

【Linux系统编程】进程的认识

介绍&#xff1a; 进程是程序执行的实体&#xff0c;可将其理解为程序。比如&#xff1a;当我们使用文本编辑器Notepad应用程序来编写一篇文章时&#xff0c;此时&#xff0c;Notepad应用程序就被加载到了内存中&#xff0c;并且它占用的资源&#xff08;如内存、CPU等&#xf…

伦敦金交易内地与香港有何区别

伦敦金交易是国际银行间市场层面的现货黄黄金交易&#xff0c;亚洲市场的交易中心在中国香港&#xff0c;现在不管是香港本地还是内地的投资者&#xff0c;都可以在网上开户&#xff0c;通过香港的平台参与伦敦金交易&#xff0c;所得到的服务是同等的、公平的、与国际市场接轨…

在Windows上使用 Python

本文档旨在概述在 Microsoft Windows 上使用 Python 时应了解的特定于 Windows 的行为。 与大多数UNIX系统和服务不同&#xff0c;Windows系统没有预安装Python。多年来CPython 团队已经编译了每一个 发行版 的Windows安装程序&#xff08;MSI 包&#xff09;&#xff0c;已便…

Linux 音视频SDK开发实践

一、兼容性适配处理 为什么需要兼容处理&#xff1f; 1、c兼容处理 主要有ABI兼容性问题&#xff0c;不同ubuntu系统依赖的ABI版本如下&#xff1a; ubuntu 18.04ubuntu 16.04ubuntu 14.04g7.55.44.8stdc版本libstdc.so.6.0.25libstdc.so.6.0.21libstdc.so.6.0.19GLIBCXXG…

【SpringBoot快速入门】(4)SpringBoot项目案例代码示例

目录 1 创建工程3 配置文件4 静态资源 之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开…

JavaCV音视频开发宝典:UDP局域网组播推流,多播推流,局域网多网段推流,使用UDP方式推送TS组播流,实现UDP一对多组播

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 在之前文章中我们已经实现rtp点到点传输JavaCV音视频开发宝典:rtp点到点音视频传输(一对一音视频直播)和rtp广播JavaCV音视频开发宝典:rtp广播方式发送TS流音视频传输(一对多音视…

私域用户标签体系|超全指南

将用户进行精准画像&#xff0c;搭建用户标签体系&#xff0c;将自己的客户分层&#xff0c;逐个突破。

IEEE TASLP | 联合语音识别与口音识别的解耦交互多任务学习网络

尽管联合语音识别&#xff08;ASR&#xff09;和口音识别&#xff08;AR&#xff09;训练已被证明对处理多口音场景有效&#xff0c;但当前的多任务ASR-AR方法忽视了任务之间的粒度差异。细粒度单元&#xff08;如音素、声韵母&#xff09;可用于捕获与发音相关的口音特征&…

利用阿里通义千问和Semantic Kernel,10分钟搭建大模型知识助手!

前言 **通义千问&#xff1a;**是阿里推出的一个超大规模的语言模型&#xff0c;其中参数模型Qwen-72B已经宣布开源&#xff0c;同时还开源了18亿参数模型Qwen-1.8B和音频大模型Qwen-Audio&#xff0c;至此已经开源了18亿、70亿、140亿、720亿参数的4款大语言模型&#xff0c;…

【QT】QGraphicsView和QGraphicsItem坐标转换

坐标转换 QGraphicsItem和QGraphicsView之间的坐标转换需要通过QGraphicsScene进行转换 QGraphicsView::mapToScene() - 视图 -> 场景QGraphicsView::mapFromScene() - 场景 -> 视图QGraphicsItem::mapToScene() - 图元 -> 场景QGraphicsItem::mapFromScene() - 场景 …

【leetcode234】回文链表Java代码讲解

12.21 234. 回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&a…

【Java代码审计】URL跳转漏洞篇

【Java代码审计】URL跳转漏洞篇 1.URL跳转漏洞概述2.Java中的URL重定向3.URL跳转漏洞修复 1.URL跳转漏洞概述 通俗地说&#xff0c;目前很多的Web应用因为业务需要&#xff0c;需与内部的其他服务或者第三方的服务进行交互&#xff0c;这样就需要重定向的功能&#xff0c;由当…

上市十年 这家互联网服务平台窥见汽车市场“沧海桑田”

十年&#xff0c;对于一家上市公司而言意味着什么&#xff1f;以中概股为例&#xff0c;十年里的高低起伏&#xff0c;折射出不同公司和行业的各异命运。 新浪在2021年私有化退市&#xff0c;曾经名声在外的聚美优品在2020年遭遇同样命运。再往前数&#xff0c;还有离开美股回…

浅谈ASO优化如何应对市场竞争的挑战

随着应用市场的竞争越来越激烈&#xff0c;ASO优化也要为了应对各种来临的风险与机遇做出改变&#xff0c;提高自己的适应能力&#xff0c;下面小柚整理了一些思路供大家参考。 1. 深入了解目标用户需求&#xff1a;首先&#xff0c;需要深入了解目标用户的需求和痛点&#xf…

【LeetCode刷题笔记(11-1)】【Python】【和为 K 的子数组】【前缀和】【中等】

文章目录 引言和为 K 的子数组题目描述提示 解决方案1&#xff1a;【暴力枚举】解决方案2&#xff1a;【前缀和】结束语 和为 K 的子数组 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例&#xff0c;但…

985等高校急速开设“鸿蒙班”,引领IT就业新时代

​根据澎湃新闻记者了解到&#xff0c;华为以及鸿蒙系软件厂商都在积极培养鸿蒙开发人才。其中产学联动、产教融合来培养鸿蒙生态人才是重要的一条路径&#xff0c;目前已有 23 家 985 高校、46 家 211 高校已开设或即将开设HarmonyOS 相关课程。 其中南京大学已经将 HarmonyOS…