arm:day4

news/2024/12/22 19:56:37/

1. 实现三盏灯的点亮

.text 
.global _start_start: @ led1初始化函数LED_INIT:@ 1 通过RCC_AHB4_ENSETR寄存器,设置GPIOE F组控制器使能 0x50000A28[5:4]=1ldr r0,=0X50000A28ldr r1,[r0]orr r1,r1,#(0X3<<4)str r1,[r0]@ 2.1 通过GPIOE_MODER寄存器,设置PE10引脚为输出模式 0x50006000[21:20]=01ldr r0,=0X50006000ldr r1,[r0]bic r1,r1,#(0X3<<20)orr r1,r1,#(0X1<<20)str r1,[r0]@ 2.2 通过GPIOE_MODER寄存器,设置PF10引脚为输出模式 0x50007000[21:20]=01ldr r0,=0X50007000ldr r1,[r0]bic r1,r1,#(0X3<<20)orr r1,r1,#(0X1<<20)str r1,[r0]@ 2.3 通过GPIOE_MODER寄存器,设置PE8引脚为输出模式 0x50006000[17:16]=01ldr r0,=0X50006000ldr r1,[r0]bic r1,r1,#(0X3<<16)orr r1,r1,#(0X1<<16)str r1,[r0]@ 3.1 通过GPIOE_OTYPER寄存器,设置PE10引脚为推挽输出模式 0x50006004[10]=0ldr r0,=0X50006004ldr r1,[r0]bic r1,r1,#(0X1<<10)str r1,[r0]@ 3.2 通过GPIOE_OTYPER寄存器,设置PF10引脚为推挽输出模式 0x50006004[10]=0ldr r0,=0X50007004ldr r1,[r0]bic r1,r1,#(0X1<<10)str r1,[r0]@ 3.3 通过GPIOE_OTYPER寄存器,设置PE8引脚为推挽输出模式 0x50006004[8]=0ldr r0,=0X50006004ldr r1,[r0]bic r1,r1,#(0X1<<8)str r1,[r0]@ 4.1 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50006008[21:20]=00ldr r0,=0X50006008ldr r1,[r0]bic r1,r1,#(0X3<<20)str r1,[r0]@ 4.2 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50007008[21:20]=00ldr r0,=0X50007008ldr r1,[r0]bic r1,r1,#(0X3<<20)str r1,[r0]@ 4.3 通过GPIOE_OSPEEDR寄存器,设置PE10引脚为低速输出 0x50006008[17:16]=00ldr r0,=0X50006008ldr r1,[r0]bic r1,r1,#(0X3<<16)str r1,[r0]@ 5.1 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000600c[21:20]=00ldr r0,=0X5000600Cldr r1,[r0]bic r1,r1,#(0X3<<20)str r1,[r0]@ 5.2 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000700c[21:20]=00ldr r0,=0X5000700Cldr r1,[r0]bic r1,r1,#(0X3<<20)str r1,[r0]@ 5.3 通过GPIOE_PUPDR寄存器,设置PE10引脚禁止上下拉电阻 0x5000600c[17:16]=00ldr r0,=0X5000600Cldr r1,[r0]bic r1,r1,#(0X3<<16)str r1,[r0]/**********流水灯**********/ldr r0,=0x50006014ldr r2,=0x50007014 loop:@ 1亮23灭	ldr r1,[r0]orr r1,r1,#(0X1<<10)str r1,[r0]ldr r1,[r2]bic r1,r1,#(0X1<<10)str r1,[r2]ldr r1,[r0]bic r1,r1,#(0X1<<8)str r1,[r0]bl delay_1s@ 2亮13灭 ldr r1,[r0]bic r1,r1,#(0X1<<10)str r1,[r0]ldr r1,[r2]orr r1,r1,#(0X1<<10)str r1,[r2]ldr r1,[r0]bic r1,r1,#(0X1<<8)str r1,[r0]bl delay_1s@ 3亮12灭ldr r1,[r0]bic r1,r1,#(0X1<<10)str r1,[r0]ldr r1,[r2]bic r1,r1,#(0X1<<10)str r1,[r2]ldr r1,[r0]orr r1,r1,#(0X1<<8)str r1,[r0]bl delay_1sb loop @ 跳转到loop,实现循环@ 大概1s的延时函数delay_1s:mov r3,#0x10000000mm:cmp r3, #0subne r3, r3, #1bne mmmov pc, lr
.end

 


http://www.ppmy.cn/news/1037827.html

相关文章

智能数据建模软件DTEmpower 2023R2新版本功能介绍

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件&#xff0c;致力于帮助工程师及工科专业学生&#xff0c;利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析&#xff0c;建立高质量的数据模型&#xff0c;实现快速设计评估、实时仿真预测、系统参数预警、设…

linux两台服务器互相备份文件(sshpass + crontab)

crontab crontab是linux系统自带的定时调度软件&#xff0c;可用于设置周期性被执行的指令&#xff0c;一般用在每天的非高峰负荷时间段运行作业&#xff0c;可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

8.1 C++ STL 变易拷贝算法

C STL中的变易算法&#xff08;Modifying Algorithms&#xff09;是指那些能够修改容器内容的算法&#xff0c;主要用于修改容器中的数据&#xff0c;例如插入、删除、替换等操作。这些算法同样定义在头文件 <algorithm> 中&#xff0c;它们允许在容器之间进行元素的复制…

Java课题笔记~ SpringMVC的四种跳转方式

默认的跳转是请求转发&#xff0c;直接跳转到jsp页面展示 还可以使用框架提供的关键字redirect&#xff0c;进行一个重定向操作&#xff0c;包括重定向页面和重定向action&#xff0c;使用框架提供的关键字forward&#xff0c;进行服务器内部转发操作&#xff0c;包括转发页面…

react go实现用户历史登录列表页面

refer: http://ip-api.com/ 1.首先需要创建一个保存用户历史的登录的表&#xff0c;然后连接go 2.在用户登录的时候&#xff0c;获取用户的IP IP位置&#xff0c;在后端直接处理数据即可&#xff08;不需要在前端传递数据&#xff09; &#xff08;1&#xff09;增加路由&am…

ChatGPT在智能机器人和自动导览中的应用如何?

ChatGPT在智能机器人和自动导览领域具有广泛的应用潜力。作为一种强大的自然语言处理模型&#xff0c;ChatGPT可以通过语音或文本交互与用户进行实时沟通&#xff0c;提供信息、解答问题&#xff0c;甚至执行任务。本文将详细探讨ChatGPT在智能机器人和自动导览中的应用&#x…

Gitlab CI/CD笔记-第三天-使用主机docker in docker 进行构建并push镜像。

一、啥叫docker in docker 就是允许的镜像里头有一个docker,但这个docekr镜像只有docker的cli和/var/lib/docker.sock的套接字&#xff0c;没有允许build.然后里头又运行了一个docker&#xff0c;这个docker有build的能力&#xff0c;此时构建时就是里头的docker使用外部的dock…