0628_ARM4

练习:

stm32流水灯

.text 
.global _start
_start: 

@使能GPIOE外设时钟   0X50000A28     RCC_MP_AHB4ENSETR[4]->1
LDR R0,=0x50000a28   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
ORR R1,R1,#(0x3<<4)   @将第4,5位设置为1
STR R1,[R0]  @将修改后的数值写回去


@设置PE10为输出   0X50006000 [21:20]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去

@设置PE8为输出   0X50006000 [17:16]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @先清零
ORR R1,R1,#(0x1<<16)   @再置位
STR R1,[R0]  @将修改后的数值写回去

@设置PF10为输出   0X50007000 [21:20]->01
LDR R0,=0x50007000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去


@设置PE10为推挽输出  0X50006004  [10]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去

@设置PE8为推挽输出  0X50006004  [8]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<8)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去

@设置PF10为推挽输出  0X50007004  [10]->0
LDR R0,=0x50007004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去

@设置PE10低速输出  0X50006008   [21:20]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去

@设置PE8低速输出  0X50006008   [17:16]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去

@设置PF10低速输出  0X50007008   [21:20]->00
LDR R0,=0x50007008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去

@设置PE10无上啦下拉电阻  0X5000600C  [21:20]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去

@设置PE8无上啦下拉电阻  0X5000600C  [17:16]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去

@设置PF10无上啦下拉电阻  0X5000700C  [21:20]->00
LDR R0,=0x5000700C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去

WH:
    BL LED1_ON
    BL DELAY
    BL LED1_OFF
    BL DELAY

    BL LED2_ON
    BL DELAY
    BL LED2_OFF
    BL DELAY

    BL LED3_ON
    BL DELAY
    BL LED3_OFF
    BL DELAY
B WH

LED1_ON:
    @设置PE10输出高电平  0X50006014  [10]->1
    LDR R0,=0x50006014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    ORR R1,R1,#(0x1<<10)   @写1
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

LED2_ON:
    @设置PF10输出高电平  0X50007014  [10]->1
    LDR R0,=0x50007014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    ORR R1,R1,#(0x1<<10)   @写1
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

LED3_ON:
    @设置PE8输出高电平  0X50006014  [8]->1
    LDR R0,=0x50006014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    ORR R1,R1,#(0x1<<8)   @写1
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

LED1_OFF:
    @设置PE10输出高电平  0X50006014  [10]->1
    LDR R0,=0x50006014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    BIC R1,R1,#(0x1<<10)   @清0
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

LED2_OFF:
    @设置PF10输出高电平  0X50007014  [10]->1
    LDR R0,=0x50007014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    BIC R1,R1,#(0x1<<10)   @清0
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

LED3_OFF:
    @设置PE8输出高电平  0X50006014  [8]->1
    LDR R0,=0x50006014   @指定操作的内存地址
    LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
    BIC R1,R1,#(0x1<<8)   @清0
    STR R1,[R0]  @将修改后的数值写回去
    MOV PC,LR

@封装延时函数
DELAY:
    LDR R3,=0x10000000
MM:
    CMP R3,#0
    SUBNE R3,R3,#1
    BNE MM
    MOV PC,LR




.end

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据资产管理的艺术:构建智能化、精细化的数据资产管理体系,从数据整合、分析到决策支持,为企业提供一站式的数据资产解决方案,助力企业把握数字时代的新机遇

一、引言 在数字化浪潮席卷全球的今天&#xff0c;数据已经成为企业最重要的资产之一。如何高效、安全地管理这些海量数据&#xff0c;从中提取有价值的信息&#xff0c;并将其转化为决策支持&#xff0c;是每个企业都必须面对的挑战。本文将探讨数据资产管理的艺术&#xff0…

RocketMQ快速入门:事务消息原理及实现(十)

目录 0. 引言1. 原理2. 事务消息的实现2.1 java client实现&#xff08;适用于spring框架&#xff09;2.2 springboot实现 3. 总结 0. 引言 rocketmq 的一大特性就是支持事务性消息&#xff0c;这在诸多场景中有所应用。在之前的文章中我们已经讲解过事务消息的使用&#xff0…

填完高考志愿后,每天必须要做的三件事!

填完志愿后是等录取通知书吗&#xff1f;错&#xff0c;大错特错&#xff0c;今天老师特别提醒大家&#xff0c;每天要做的3件事非常重要&#xff0c;一定要点赞收藏起来。 第一&#xff0c;每天早上9点登录你们省教育考试院的官网&#xff0c;凭个人的账号和密码查看招生考试…

【MotionCap】ImportError: cannot import name ‘packaging‘ from ‘pkg_resources‘

ImportError: cannot import name ‘packaging’ from ‘pkg_resources’ 降低setuptools的版本 参考大神:(ai-mocap) zhangbin@ubuntu-server:~/proj/04_mocap/third-party$ pip install -e neural_renderer

format()方法——格式化字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法介绍 format()可以对数据进行格式化处理操作&#xff0c;语法如下&#xff1a; format(value, format_spec) format_spec为格式化解释。当参数…

AI视频教程下载-数据分析中的提示工程:Python、Pandas、ChatGPT

Prompt Engineering for Data Analysis Python, Pandas, ChatGPT ChatGPT与Python&#xff1a;无需编程。借助ChatGPT、Python、Pandas及提示工程进行数据分析与数据可视化 "利用Python、Pandas和ChatGPT进行数据分析的提示工程"是一门开创性的课程&#xff0c;它通…

来聊聊nacos

先关注下下方公众号呗&#xff1a; 第1部分&#xff1a;引言 微服务的挑战 尽管微服务架构带来了许多好处&#xff0c;如敏捷性、可扩展性和容错性&#xff0c;但它也带来了一些挑战&#xff0c;特别是在服务发现、配置管理、服务间通信和运维管理方面。这些挑战需要有效的解…

【小程序静态页面】猜拳游戏大转盘积分游戏小程序前端模板源码

猜拳游戏大转盘积分游戏小程序前端模板源码&#xff0c; 一共五个静态页面&#xff0c;首页、任务列表、大转盘和猜拳等五个页面。 主要是通过做任务来获取积分&#xff0c;积分可以兑换商品&#xff0c;也可用来玩游戏&#xff1b;通过玩游戏既可能获取奖品或积分也可能会消…

Linux libreoffice安装 word转pdf 中文乱码(缺少字体解决)

libreoffice 的安装 yum install -y libreoffice版本验证 libreoffice --version参考文章 word转pdf 命令 转换命令 要将Word文档(.doc或.docx)转换为PDF格式&#xff0c;可以使用以下命令&#xff1a; libreoffice --headless --convert-to pdf your_word_document.docx指…

MySQL84 -- ERROR 1524 (HY000): Plugin ‘msql_native_password‘ is not loaded.

【问题描述】 MySQL 8.4版本&#xff0c;配置用户使用mysql_native_password认证插件验证用户身份&#xff0c;报错&#xff1a; 【解决方法】&#xff08;Windows, MySQL 8.4) 1、修改MySQL配置文件my.ini&#xff0c;在[mysqld]段添加mysql_native_passwordON。 2、管理员…

vue3中获取Excel和csv文件中的内容

1.效果 2.安装 npm install xlsxyarn add xlsx 3.引入使用 <el-upload ref"uploadRef" :on-change"changeFile" :show-file-list"false" class"mr10" accept".csv, .xlsx, .xls"action"#" :auto-upload&quo…

center()方法——字符串居中填充

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 字符串对象的center()方法用于将字符串填充至指定长度&#xff0c;并将原字符串居中输出。center()方法的语法格式如下&#xff1a; str.…

php 通过vendor文件 生成还原最新的composer.json

起因&#xff1a;因为历史原因&#xff0c;在本项目中composer.json基本算废了&#xff0c;没法直接使用composer管理扩展&#xff0c;今天尝试修复一下composer.json。 历史文件&#xff0c;可以看出来已经很久没有维护了&#xff0c;我们主要是恢复require的信息 {"na…

Kubernetes 之GVR与GVK详解

本文尝试从GVR与GVK对比、常见的GVR和GVK操作、GVK设计精髓、CRD工作流程等方面对GVK和GVR进行详细分析。希望对您有用&#xff01; 一、Kubernetes 之GVR与GVK对比 在 Kubernetes 中&#xff0c;GVR 和 GVK 是两个重要的概念&#xff0c;用于唯一标识和操作不同的资源类型和…

香港服务器托管对外贸行业必要性和优势

在当今全球化的经济环境下&#xff0c;外贸企业面临着前所未有的机遇与挑战。其中&#xff0c;服务器托管的选择对于外贸企业的运营效率和市场拓展具有举足轻重的作用。香港服务器&#xff0c;凭借其独特的地理位置、优质的网络环境和卓越的服务性能&#xff0c;一直是外贸企业…

基于改进天鹰优化算法(IAO)优化BP神经网络数据分类预测(IAO-BP)

改进天鹰优化算法(IAO)见&#xff1a;【智能优化算法】改进的AO算法(IAO)-CSDN博客 BP神经网络的数据分类预测&#xff1a;基于BP神经网络的数据分类预测-CSDN博客 代码原理 基于改进天鹰优化算法&#xff08;IAO&#xff09;优化BP神经网络数据分类预测&#xff08;IAO-BP&…

线性代数知识点搜刮

求你别考太细... 目录 异乘变零定理 行列式转置 值不变 重要关系 中间相等&#xff0c;取两头 特征值公式 向量正交 点积为0 拉普拉斯定理 矩阵的秩 特征值和特征向量 |A|特征值的乘积 & tr(A)特征值的和 要记要背 增广矩阵 异乘变零定理 某行&#xff08;…

Linux命令 wc(word count)-l(lines)用于统计文件中的行数。

文章目录 1、wc -l2、实战3、wc --help 1、wc -l 在命令 wc -l 中&#xff0c;-l 的英文全称是 lines。这个选项用于指定 wc&#xff08;word count&#xff0c;单词计数&#xff09;命令来统计文件的行数。 例如&#xff0c;当你运行 wc -l load_user_100w_sort.sql 时&…

探索CSS布局:创建一个居中的内嵌方块示例

在网页设计中&#xff0c;布局是至关重要的部分。CSS提供了多种方式来实现元素的布局&#xff0c;包括居中对齐、外边距、内边距等。本文将通过一个简单的示例&#xff0c;介绍如何使用CSS来创建一个居中的内嵌方块&#xff0c;并探讨其背后的布局原理。 HTML 结构 首先&…

BLACKBOX.AI:解锁开发新纪元,加速编程学习的AI神器!

文章目录 &#x1f4af;BLACKBOX.AI 官网&#x1f341;1 BLACKBOX.AI 工具使用教程&#x1f341;2 BLACKBOX.AI工具使用界面介绍&#x1f341;3 Chat(聊天)功能&#x1f341;4 Explore (探索)功能&#x1f48e;4.1 Terminal(终端)功能&#x1f48e;4.2 Discover(发现)功能&…