ARM——点灯实验

循环点灯

  1.  RCC寄存器使能GPIOE、GPIOF组寄存器
  2.  修改GPIOx组寄存器下的值
    1. 通过GPIOx_MODER寄存器设置为输出模式
    2. 通过GPIOx_OTYOER寄存器设置为推挽输出类型
    3. 通过GPIOx_OSPEEDR寄存器设置为低速输出
    4. 通过GPIOx_PUPDR寄存器设置为禁止上下拉电阻
  3. 点灯   通过GPIOx_ODR寄存器设置为高电平
  4. 灭灯  通过GPIOx_ODR寄存器设置为低电平
.text 
.global _start
_start: /**********LED1点灯**************/@用RCC寄存器使能GPIOE、GPIOF寄存器
RCC_INIT:@使能GPIOE组控制器ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<4)str r1,[r0]@使能GPIOF组控制器ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<5)str r1,[r0]LED1_INIT:
@修改GPIOE_MODER寄存器ldr r2,=0x50006000ldr r3,[r2]bic r3,r3,#(0x1<<21)orr r3,r3,#(0x1<<20)str r3,[r2]ldr r2,=0x50007000ldr r3,[r2]bic r3,r3,#(0x1<<21)orr r3,r3,#(0x1<<20)str r3,[r2] ldr r2,=0x50006000ldr r3,[r2]bic r3,r3,#(0x1<<17)orr r3,r3,#(0x1<<16)str r3,[r2] @修改GPIOE_OTYPER寄存器ldr r4,=0x50006004ldr r5,[r4]bic r5,r5,#(0x1<<10)str r5,[r4]ldr r4,=0x50007004ldr r5,[r4]bic r5,r5,#(0x1<<10)str r5,[r4]ldr r4,=0x50006004ldr r5,[r4]bic r5,r5,#(0x1<<8)str r5,[r4]@修改GPIOE_OSPEEDR寄存器ldr r6,=0x50006008ldr r7,[r6]bic r7,r7,#(0x1<<21)bic r7,r7,#(0x1<<20)str r7,[r6]ldr r6,=0x50007008ldr r7,[r6]bic r7,r7,#(0x1<<21)bic r7,r7,#(0x1<<20)str r7,[r6]ldr r6,=0x50006008ldr r7,[r6]bic r7,r7,#(0x1<<17)bic r7,r7,#(0x1<<16)str r7,[r6]@修改GPIOE_PUPDR寄存器ldr r8,=0x5000600Cldr r9,[r8]bic r9,r9,#(0x1<<21)bic r9,r9,#(0x1<<20)str r9,[r8]ldr r8,=0x5000700Cldr r9,[r8]bic r9,r9,#(0x1<<21)bic r9,r9,#(0x1<<20)str r9,[r8]ldr r8,=0x5000600Cldr r9,[r8]bic r9,r9,#(0x1<<17)bic r9,r9,#(0x1<<16)str r9,[r8]loop:bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl LED3_ONbl delay_1sbl LED3_OFFbl delay_1sb loopLED1_ON:ldr r10,=0x50006014ldr r11,[r10]orr r11,r11,#(0x1<<10)str r11,[r10]mov pc,lrLED2_ON:ldr r10,=0x50007014ldr r11,[r10]orr r11,r11,#(0x1<<10)str r11,[r10]mov pc,lrLED3_ON:ldr r10,=0x50006014ldr r11,[r10]orr r11,r11,#(0x1<<8)str r11,[r10]mov pc,lr@ 大概1s的延时函数
delay_1s:mov r3, #0x10000000mm:cmp r3, #0subne r3, r3, #1bne mmmov pc,lrLED1_OFF:ldr r10,=0x50006014ldr r11,[r10]bic r11,r11,#(0x1<<10)str r11,[r10]mov pc,lrLED2_OFF:ldr r10,=0x50007014ldr r11,[r10]bic r11,r11,#(0x1<<10)str r11,[r10]mov pc,lrLED3_OFF:ldr r10,=0x50006014ldr r11,[r10]bic r11,r11,#(0x1<<8)str r11,[r10]mov pc,lr.end
效果图

 

 思维导图

 

 

 

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

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

相关文章

excel中的vlookup如何实现根据多个条件查找?

目录 简述问题公式思路通用公式三条件查找公式实例 简述 Excel 中根据一个条件查找非常方便&#xff0c;Excel 提供了内置函数 VLOOKUP。但是实际中往往有多种情形&#xff0c;需要根据多个条件进行查找操作&#xff0c;目前没有现成的内置函数。 本篇介绍 VLOOKPCHOOSE 组合…

Craps赌博游戏问题C语言

说明一个简单的赌博游戏&#xff0c;游戏规则如下&#xff1a;玩家掷两个骰子&#xff0c;点数为1到6&#xff0c;如果第一次点数和为7或11&#xff0c;则玩家胜&#xff0c;如果点数和为2、3或12&#xff0c;则玩家输&#xff0c;如果和 为其它点数&#xff0c;则记录第一次的…

flask路由添加参数

flask路由添加参数 在 Flask 中&#xff0c;可以通过两种方式在路由中添加参数&#xff1a;在路由字符串中直接指定参数&#xff0c;或者通过 request 对象从请求中获取参数。 在路由字符串中指定参数&#xff1a;可以将参数直接包含在路由字符串中。参数可以是字符串、整数、…

Apipost使用教程

Apipost是一款集API调试、生成文档、Mock、测试于一体的协同工具。单个工具可以同时满足接口测试、生成/分享文档、Mock、流程测试等功能&#xff0c;还有超实用的多人多角色间实时协作的功能。将前端、后端、测试三种角色串联起来&#xff0c;从而实现工作流程无缝衔接、提高研…

Asp.Net 使用Log4Net (基础版)

Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台&#xff0c;并运行以下命令来安装Log4Net&#xff1a; mathemati…

(三)RabbitMQ七种模式介绍与代码演示

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 七种模式介绍与代码演示 文章目录 七种模式介绍与代码演示四大交换机四种交换机介绍 工作模式简单模式&#xff08;Hello World&#xff09;工作队列模式&#xff08;Work queues&#xff09;订阅模式&#xff08;Publis…

FPGA设计时序分析一、时序路径

目录 一、前言 二、时序路径 2.1 时序路径构成 2.2 时序路径分类 2.3 数据捕获 2.4 Fast corner/Slow corner 2.5 Vivado时序报告 三、参考资料 一、前言 时序路径字面容易简单地理解为时钟路径&#xff0c;事实时钟存在的意义是为了数据的处理、传输&#xff0c;因此严…

基于Docker-compose创建LNMP环境并运行Wordpress网站平台

基于Docker-compose创建LNMP环境并运行Wordpress网站平台 1.Docker-Compose概述2.YAML文件格式及编写注意事项3.Docker-Compose配置常用字段4.Docker Compose常用命令5.使用Docker-compose创建LNMP环境&#xff0c;并运行Wordpress网站平台1. Docker Compose 环境安装下载安装查…

ChatGPT:人工智能交互的未来之光

一、ChatGPT&#xff1a;开启自然语言交流新纪元 ChatGPT 是基于 GPT&#xff08;生成式预训练&#xff09;技术的最新版本&#xff0c;它采用深度学习模型&#xff0c;通过在大规模文本数据上的预训练来理解自然语言&#xff0c;并生成具有连贯性和合理性的回复。ChatGPT 是一…

fasync driver demo

Linux系统中的fasync用于设备驱动程序与用户空间之间的异步通信。它允许设备驱动程序通知用户空间的进程&#xff0c;当设备状态发生变化时&#xff0c;通过发送SIGIO信号来告知进程。 具体来说&#xff0c;设备驱动程序可以调用fasync_helper()函数来注册一个或多个进程&…

静态 链接

1、空间与地址的分配 现在的链接器空间分配的策略基本上都采用 “相似段合并” 的方式。通过将所有相同类型的 section 合并到一起&#xff0c;例如将所有输入目标文件的 .text 合并&#xff08;按顺序合并&#xff09;到输出文件的 .text 节中&#xff1b;然后&#xff0c;链接…

第111天:免杀对抗-JavaASM汇编CS调用内联CMSF源码特征修改Jar打包

知识点 #知识点&#xff1a; 1、ASM-CS-单汇编&内联C 2、JAVA-MSF-源码修改&打包#章节点&#xff1a; 编译代码面-ShellCode-混淆 编译代码面-编辑执行器-编写 编译代码面-分离加载器-编写 程序文件面-特征码定位-修改 程序文件面-加壳花指令-资源 代码加载面-Dll反射…

自动驾驶技术架构

自动驾驶技术架构 自动驾驶技术架构 自动驾驶关键技术 自动驾驶汽车技术架构较为复杂&#xff0c;涉及了多领域的交叉互容&#xff0c;例如汽车、交通、通信等&#xff0c;基于自动驾驶相关的软硬件、辅助开发工具、行业标准等各方面关键问题&#xff0c;自动驾驶汽车关键技术…

CB(CBScript)如何实现两个关键字相加?

下载地址:CBScript 为自己的软件增加脚本编写功能并自定义API 如示例代码: [TestMethod()]public void Script_Args_DataTable_Select(){string script "COLACOLB";DataTable table new DataTable();table.Columns.Add("COLA");table.Columns.Add("…

深度学习(二)

目录 一、神经网络 整体架构: 架构细节: 神经元个数的影响: 神经网络过拟合解决: 卷积网络 整体架构: 卷积层 边缘填充 特征尺寸计算 池化层 特征图变化 递归神经网络 一、神经网络 整体架构: 图中分别为输入层、隐层1、隐层2、输出层 通过输入层输入某数值&#xf…

机器学习之线性判别分析(Linear Discriminant Analysis)

1 线性判别分析介绍 1.1 什么是线性判别分析 线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;简称LDA&#xff09;是一种经典的监督学习算法&#xff0c;也称"Fisher 判别分析"。LDA在模式识别领域&#xff08;比如人脸识别&#xff0c;舰艇识别…

3.2.20:DTP与Datepicker实现日期的输入

【分享成果&#xff0c;随喜正能量】人生艰难自不必去回避&#xff0c;人生艰难说多了也是白说&#xff0c;为什么&#xff0c;解决不了问题&#xff0c;说了也还是那么难。。 我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高…

【电子设计大赛】2023 年全国大学生电子设计竞赛 仪器和主要元器件清单

2023 年全国大学生电子设计竞赛仪器设备和主要元器件及器材清单 [本科组] 1. 仪器设备清单 直流稳压电源&#xff08;具有恒流/恒压模式自动切换功能&#xff0c;0~30V/3A&#xff0c;双路&#xff09; 数字示波器&#xff08;100MHz&#xff0c; 双通道&#xff09; 函数发…

每日一题——多数元素

多数元素 题目链接 方法一&#xff1a;暴力解法 直接利用两层循环&#xff0c;外层循环用来枚举数组的每一个元素&#xff0c;内层循环用来计算每个元素出现的次数&#xff0c;这样就可以求出多数元素了。 显然&#xff0c;这个方法的时间复杂度为O(N^2)&#xff0c;效率太低…

关于项目,会问我什么?

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「288」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 在校招求职这块&#xff0c;简历上比较重要的点就是教育背景、实习经历、项目经验三块&#xff0c;其中教育背景都到了秋招这…