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] 将寄存器原来的数值读取出来,保存到R1中 ORR R1,R1,#(0x3<<4) 将第3/4位设置为1 STR R1,[R0] 将修改后的数值写回设置LED1亮 设置PE10为输出…...
69: 偷菜时间表(python)
收藏 难度:一般 标签:暂无标签 题目描述 随着“开心农场”等娱乐游戏风靡互联网,“偷菜”遂瞬间蹿红网络,席卷网民生活。 于是,“你‘偷’了吗”便成为大家见面的招呼语。很快,数百万都市白领成为“偷菜…...
【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征
文章目录 0. 实验环境1. 理论基础1.1 滤波器(卷积核)1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架,相关操作…...
用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年第六届区块链与物联网国际会议(简称:BIOTC 2024)将于2024 年 7 月 19 日至 21 日在日本福冈召开,旨在为来自行业、学术界和政府的研究人员、从业者和专业人士提供一个论坛,就研发区块链和物联网的专业实践进行交…...
Django动态路由实例
Django动态路由实例 先说需求: 比如我前端有两个按钮,点击按钮1跳转到user1的用户信息页面,按钮2跳转user2用户信息页面,但是他俩共用同一个视图层 直接上代码 路由层 urlpatterns [path(user/<str:username>/, views…...
基于Vue.js和D3.js的智能停车可视化系统
引言 随着物联网技术的发展,智能停车系统正逐渐普及。前端作为用户交互的主要界面,对于提供直观、实时的停车信息至关重要。 目录 引言 一、系统设计 二、代码实现 1. 环境准备 首先,确保您的开发环境已经安装了Node.js和npm。然后&…...
数据之王国:解析Facebook的大数据应用
引言 作为全球最大的社交媒体平台之一,Facebook拥有庞大的用户群体和海量的数据资源。这些数据不仅包括用户的个人信息和社交行为,还涵盖了广告点击、浏览记录等多方面内容。Facebook通过巧妙地利用这些数据,构建了强大的大数据应用系统&…...
前端小白的学习之路(ES6 一)
提示:关键字声明:let与const,长度单位:em与rem,vw与wh,解构赋值,箭头函数(简介) 目录 一、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 优化 - 数据结构
一、概念 数据结构:数据存储在内存中的顺序和位置关系,选择合适的数据结构能提高内存的利用率。 线性结构链表结构树形结构 二、线性结构 结构优点缺点数组数据呈线性排列,初始化时就要指定长度且无法更改,会开辟一块连续的内…...
Linux环境开发工具之vim
前言 上一期我们已经介绍了软件包管理器yum, 已经可以在linux上查找、安装、卸载软件了,本期我们来介绍一下文本编辑器vim。 本期内容介绍 什么是vim vim的常见的模式以及切换 vim命令模式常见的操作 vim底行模式常见的操作 解决普通用户无法执行sudo问…...
「Linux系列」Shell介绍及起步
文章目录 一、Shell简介二、Shell脚本三、Shell解释器四、相关链接 一、Shell简介 Shell本身是一个用C语言编写的程序,它既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计…...
用pdf2docx将PDF转换成word文档
pdf2docx是一个Python模块,可以将PDF文件转换为docx格式的Word文档。 pdf2docx模块基于Python的pdfminer和python-docx库开发,可以在Windows、Linux和Mac系统上运行。它可以从PDF文件中提取文本和图片,并将其转换成可编辑的Word文档…...
STM32U5 ADC 自校准不成功的问题分析
1、引言 很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程,用于驱动包括 ADC 上电/掉电序列在内的所有校准动作。在这个过程中,ADC 计算出一个校准因子,并在内部应用到此 ADC 模块,直到下一次 ADC 掉电。…...
使用光标精灵更换电脑鼠标光标样式,一键安装使用
想要让自己在使用电脑时更具个性化,让工作和娱乐更加愉快,改变你的电脑指针光标皮肤可能是一个简单而有效的方法。很多人或许并不清楚如何轻松地调整电脑光标样式,下面我就来分享一种简单的方法。 电脑光标在系统里通常只有几种默认图案&…...
微服务day04(上)-- RabbitMQ学习与入门
1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但…...
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) 文章目录 题意思路注意 标程 题目链接:[B.Bitwise Operati…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
