当前位置: 首页 > news >正文

ARM:汇编点灯


.text 
.global _start
_start: @使能GPIOE和GPIOF的外设时钟  
LDR R0,=0x50000A28   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
ORR R1,R1,#(0x3<<4)   @将第3/4位设置为1
STR R1,[R0]  @将修改后的数值写回@设置LED1亮
@设置PE10为输出  将GPIOE_MODER[21:20]设置为01,就能够让PE10为输出工作模式
LDR R0,=0x50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回@设置PE10为推完输出  将GPIOE_OTYPER寄存器[10]设置为0,就能够让PE10以推挽输出模式进行工作
LDR R0,=0x50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回@设置PE10为低速输出
LDR R0,=0x50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回@设置无上拉下拉电阻 
LDR R0,=0x5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回@设置LED2亮
@设置PF10为输出  将GPIOF_MODER[21:20]设置为01,就能够让PF10为输出工作模式
LDR R0,=0x50007000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回@设置PF10为推完输出  将GPIOF_OTYPER寄存器[10]设置为0,就能够让PF10以推挽输出模式进行工作
LDR R0,=0x50007004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回@设置PF10为低速输出
LDR R0,=0x50007008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回@设置无上拉下拉电阻 
LDR R0,=0x5000700C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回@设置LED3亮
@设置PE8为输出  将GPIOE_MODER[17:16]设置为01,就能够让PE8为输出工作模式
LDR R0,=0x50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
ORR R1,R1,#(0x1<<16)   @将第17:16设置为01
STR R1,[R0]  @将修改后的数值写回@设置PE8为推完输出  将GPIOE_OTYPER寄存器[8]设置为0,就能够让PE8以推挽输出模式进行工作
LDR R0,=0x50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<8)   @将第8清0
STR R1,[R0]  @将修改后的数值写回@设置PE8为低速输出
LDR R0,=0x50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
STR R1,[R0]  @将修改后的数值写回@设置无上拉下拉电阻 
LDR R0,=0x5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
STR R1,[R0]  @将修改后的数值写回loop:
@设置LED1亮BL LED1_ONBL LED2_OFFBL LED3_OFFBL DELAY@设置LED2亮BL LED1_OFFBL LED2_ONBL LED3_OFFBL DELAY
@设置LED3亮BL LED1_OFFBL LED2_OFFBL LED3_ONBL DELAYb loopLED1_ON:LDR R0,=0x50006014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中ORR R1,R1,#(0x1<<10)   @将第10设置为1STR R1,[R0]  @将修改后的数值写回 MOV PC,LR
LED1_OFF:LDR R0,=0x50006014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中BIC R1,R1,#(0x1<<10)   @将第10设置为0STR R1,[R0]  @将修改后的数值写回 MOV PC,LRLED2_ON:LDR R0,=0x50007014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中ORR R1,R1,#(0x1<<10)   @将第10设置为1STR R1,[R0]  @将修改后的数值写回 MOV PC,LR
LED2_OFF:LDR R0,=0x50007014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中BIC R1,R1,#(0x1<<10)   @将第10设置为0STR R1,[R0]  @将修改后的数值写回 MOV PC,LRLED3_ON:LDR R0,=0x50006014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中ORR R1,R1,#(0x1<<8)   @将第8设置为1STR R1,[R0]  @将修改后的数值写回 MOV PC,LR
LED3_OFF:LDR R0,=0x50006014   @指定寄存器地址LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中BIC R1,R1,#(0x1<<8)   @将第8设置为0STR R1,[R0]  @将修改后的数值写回 MOV PC,LRDELAY:LDR R3,=0x10000000
MM:CMP R3,#0SUBNE R3,R3,#1BNE MMMOV PC,LR.end

点灯实现链接

video_20240320_183435-CSDN直播

相关文章:

ARM:汇编点灯

.text .global _start _start: 使能GPIOE和GPIOF的外设时钟 LDR R0,0x50000A28 指定寄存器地址 LDR R1,[R0] 将寄存器原来的数值读取出来&#xff0c;保存到R1中 ORR R1,R1,#(0x3<<4) 将第3/4位设置为1 STR R1,[R0] 将修改后的数值写回设置LED1亮 设置PE10为输出…...

69: 偷菜时间表(python)

收藏 难度&#xff1a;一般 标签&#xff1a;暂无标签 题目描述 随着“开心农场”等娱乐游戏风靡互联网&#xff0c;“偷菜”遂瞬间蹿红网络&#xff0c;席卷网民生活。 于是&#xff0c;“你‘偷’了吗”便成为大家见面的招呼语。很快&#xff0c;数百万都市白领成为“偷菜…...

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器&#xff08;卷积核&#xff09;1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架&#xff0c;相关操作…...

用css滤镜做颜色不同的数据卡片(背景图对于css滤镜的使用)

<template> <div class"xx_modal_maincon"><div class"xx_model_bt">履约起始日至计算日配额及履约情况</div><el-row><el-col :span"6"><div class"xx_modal_mod"><div class"mod…...

2024年第六届区块链与物联网国际会议(BIOTC 2024)即将召开!

2024年第六届区块链与物联网国际会议&#xff08;简称&#xff1a;BIOTC 2024&#xff09;将于2024 年 7 月 19 日至 21 日在日本福冈召开&#xff0c;旨在为来自行业、学术界和政府的研究人员、从业者和专业人士提供一个论坛&#xff0c;就研发区块链和物联网的专业实践进行交…...

Django动态路由实例

Django动态路由实例 先说需求&#xff1a; 比如我前端有两个按钮&#xff0c;点击按钮1跳转到user1的用户信息页面&#xff0c;按钮2跳转user2用户信息页面&#xff0c;但是他俩共用同一个视图层 直接上代码 路由层 urlpatterns [path(user/<str:username>/, views…...

基于Vue.js和D3.js的智能停车可视化系统

引言 随着物联网技术的发展&#xff0c;智能停车系统正逐渐普及。前端作为用户交互的主要界面&#xff0c;对于提供直观、实时的停车信息至关重要。 目录 引言 一、系统设计 二、代码实现 1. 环境准备 首先&#xff0c;确保您的开发环境已经安装了Node.js和npm。然后&…...

数据之王国:解析Facebook的大数据应用

引言 作为全球最大的社交媒体平台之一&#xff0c;Facebook拥有庞大的用户群体和海量的数据资源。这些数据不仅包括用户的个人信息和社交行为&#xff0c;还涵盖了广告点击、浏览记录等多方面内容。Facebook通过巧妙地利用这些数据&#xff0c;构建了强大的大数据应用系统&…...

前端小白的学习之路(ES6 一)

提示&#xff1a;关键字声明&#xff1a;let与const,长度单位&#xff1a;em与rem,vw与wh&#xff0c;解构赋值&#xff0c;箭头函数(简介) 目录 一、ES6介绍 二、let&const 1.let 1) 用 let 关键字声明的变量不能提前引用 2) 不允许重复声明变量 3) 可以产生块级作用…...

Linux CentOS 7.6安装Redis 6.2.6 详细保姆级教程

1、安装依赖 //检查是否有依赖 gcc -v //没有则安装 yum install -y gcc2、下载redis安装包 //进入home目录 cd /home //通过wget下载redis安装包 wget https://download.redis.io/releases/redis-6.2.6.tar.gz //解压安装包 tar -zxvf redis-6.2.6.tar.gz3、编译 //进入解压…...

Android 优化 - 数据结构

一、概念 数据结构&#xff1a;数据存储在内存中的顺序和位置关系&#xff0c;选择合适的数据结构能提高内存的利用率。 线性结构链表结构树形结构 二、线性结构 结构优点缺点数组数据呈线性排列&#xff0c;初始化时就要指定长度且无法更改&#xff0c;会开辟一块连续的内…...

Linux环境开发工具之vim

前言 上一期我们已经介绍了软件包管理器yum&#xff0c; 已经可以在linux上查找、安装、卸载软件了&#xff0c;本期我们来介绍一下文本编辑器vim。 本期内容介绍 什么是vim vim的常见的模式以及切换 vim命令模式常见的操作 vim底行模式常见的操作 解决普通用户无法执行sudo问…...

「Linux系列」Shell介绍及起步

文章目录 一、Shell简介二、Shell脚本三、Shell解释器四、相关链接 一、Shell简介 Shell本身是一个用C语言编写的程序&#xff0c;它既是一种命令语言&#xff0c;又是一种程序设计语言。作为命令语言&#xff0c;它交互式地解释和执行用户输入的命令&#xff1b;作为程序设计…...

用pdf2docx将PDF转换成word文档

pdf2docx是一个Python模块&#xff0c;可以将PDF文件转换为docx格式的Word文档。 pdf2docx模块基于Python的pdfminer和python-docx库开发&#xff0c;可以在Windows、Linux和Mac系统上运行。它可以从PDF文件中提取文本和图片&#xff0c;并将其转换成可编辑的Word文档&#xf…...

STM32U5 ADC 自校准不成功的问题分析

1、引言 很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程&#xff0c;用于驱动包括 ADC 上电/掉电序列在内的所有校准动作。在这个过程中&#xff0c;ADC 计算出一个校准因子&#xff0c;并在内部应用到此 ADC 模块&#xff0c;直到下一次 ADC 掉电。…...

使用光标精灵更换电脑鼠标光标样式,一键安装使用

想要让自己在使用电脑时更具个性化&#xff0c;让工作和娱乐更加愉快&#xff0c;改变你的电脑指针光标皮肤可能是一个简单而有效的方法。很多人或许并不清楚如何轻松地调整电脑光标样式&#xff0c;下面我就来分享一种简单的方法。 电脑光标在系统里通常只有几种默认图案&…...

微服务day04(上)-- RabbitMQ学习与入门

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;但…...

Halcon 3D 平面拟合(区域采样、Z值过滤、平面拟合、平面移动)

Halcon 3D 平面拟合(区域采样、Z值过滤、平面拟合、平面移动) 链接:https://pan.baidu.com/s/1UfFyZ6y-EFq9jy0T_DTJGA 提取码:ewdi * 1.读取图片 ****************...

npm 插件 中 版本号为 星号 是什么意思

npm 插件 中 版本号为 星号 是什么意思 "dependencies": {"hstool/side-adaptor": "*","hsui/core": "*","h_ui": "*" }, "devDependencies": {"plugin-jsx": "*","…...

Codeforces\ Round\ 930(C.Bitwise Operation Wizard)

C o d e f o r c e s R o u n d 930 ( C . B i t w i s e O p e r a t i o n W i z a r d ) \Huge{Codeforces\ Round\ 930(C.Bitwise Operation Wizard)} Codeforces Round 930(C.BitwiseOperationWizard) 文章目录 题意思路注意 标程 题目链接&#xff1a;[B.Bitwise Operati…...

Unity UGUI轻量UI框架:200行代码实现零GC界面管理

1. 为什么还要自己手写UI框架&#xff1f;——当UGUI原生方案开始“卡脖子”很多人看到这个标题第一反应是&#xff1a;“都2024年了&#xff0c;还手写UI框架&#xff1f;Asset Store里几十个成熟方案&#xff0c;NGUI、FairyGUI、TextMeshPro配套的UI系统一抓一大把&#xff…...

MCP Server生产级配置:Playwright与LLM集成的避坑指南

1. 这不是又一个“Playwright入门教程”&#xff0c;而是一份能直接塞进CI流水线的MCP Server生产级配置实录你有没有遇到过这样的场景&#xff1a;团队刚决定用AI驱动自动化测试&#xff0c;技术选型会上大家一致看好Playwright MCP&#xff08;Model Context Protocol&#…...

基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击

1. 项目概述&#xff1a;为什么我们需要一个“专用”电源&#xff1f;如果你正在用树莓派搭配一块机械硬盘搭建一个家庭服务器或者个人云存储&#xff0c;可能已经遇到了一个不大不小的麻烦&#xff1a;供电不稳。树莓派官方推荐的5V/3A电源&#xff0c;单独带树莓派4B跑满负载…...

Wechat2RSS:微信公众号转RSS订阅工具

文章目录Wechat2RSS&#xff1a;微信公众号转RSS订阅工具Wechat2RSS&#xff1a;微信公众号转RSS订阅工具 ttttmr开源的Wechat2RSS项目&#xff0c;目前在GitHub上获得1409颗Star&#xff0c;项目地址为https://github.com/ttttmr/Wechat2RSS。该工具的核心作用是将微信公众号…...

基于ESP32与MQTT的家庭环境监测系统:从传感器选型到数据可视化实战

1. 项目概述与核心价值最近几年&#xff0c;我身边越来越多的朋友开始关注家里的空气质量、温湿度这些看不见摸不着&#xff0c;但又实实在在影响生活舒适度和健康的环境指标。从新装修的房子担心甲醛&#xff0c;到有老人小孩的家庭在意PM2.5和二氧化碳浓度&#xff0c;再到南…...

ComfyUI-Manager完整指南:如何轻松管理你的AI工作流扩展库

ComfyUI-Manager完整指南&#xff1a;如何轻松管理你的AI工作流扩展库 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various c…...

通过curl命令快速测试Taotoken大模型API的连通性与返回格式

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令快速测试Taotoken大模型API的连通性与返回格式 在集成大模型能力到应用时&#xff0c;开发者通常需要一种快速、轻量的…...

yuzu模拟器完整指南:在电脑上畅玩Switch游戏的终极解决方案

yuzu模拟器完整指南&#xff1a;在电脑上畅玩Switch游戏的终极解决方案 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想在电脑上体验任天堂Switch游戏的魅力吗&#xff1f;yuzu模拟器正是你寻找的完美答案。作为…...

三步让小爱音箱秒变AI语音助手:MiGPT深度配置指南

三步让小爱音箱秒变AI语音助手&#xff1a;MiGPT深度配置指南 【免费下载链接】mi-gpt &#x1f3e0; 将小爱音箱接入 ChatGPT 和豆包&#xff0c;改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 还在为小爱音箱的"人工智障&q…...

基于ISDN信令的来电语音播报系统:从原理到树莓派实现

1. 项目概述&#xff1a;一个基于ISDN的来电语音播报系统如果你家里或办公室里还有一台老式的ISDN路由器&#xff0c;别急着把它当电子垃圾处理掉。我最近就利用手头一台闲置的ISDN路由器&#xff0c;折腾出了一个挺有意思的小玩意儿&#xff1a;一个能自动识别来电号码&#x…...