ARM--day4(电灯实验、分析RCC、GPIO控制器,PMOS管、NMOS管的基本原理)

news2024/11/18 3:30:54

电灯实验代码:

.text 
.global _start
_start: 
	/**********LED1点灯**************/

RCC_INIT:
	@1.使能GPIOE组控制器,通过RCC_AHB4ENSETR寄存器设置第[5:4]位写1---->0x50000A28[4]=1
	ldr r0,=0x50000A28
	ldr r1,[r0]
	orr r1,#(0x3 << 4) @使能GPIOE和GPIOF组
	str r1,[r0]

LED1_INIT:
	@1.设署PE10引脚为输出模式,通过CPTOE MODR寄在器设詈第[21:20]位写01 ==>0x50006000[21:20]= 01
	ldr r0,=0x50006000
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	orr r1,#(0x1<<20)   
	str r1,[r0]
	@2.设置GPIO引脚为推挽输出类型,通过GPIOE_OTYPER寄存器设置第[10]位写О--->0x50006004[10]=0
	ldr r0,=0x50006004
	ldr r1,[r0]
	bic r1,#(0x1<<10) 
	str r1,[r0]
	@3.设置PE10引脚为低速输出,通过GPIOE_OSPEEDRE寄存器第[21:20]位写00--->0x50006008[21:20]=00
	ldr r0,=0x50006008
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	str r1,[r0]
	@4.设置PE10引脚禁止上下拉电阻,通过cPIOE_PUPDR寄存器设置第[21:20]位写00--->0x5000600c[21:20]=00
	ldr r0,=0x5000600c
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	str r1,[r0]

LED2_INIT:
	@1.设署PF10引脚为输出模式,通过CPTOF MODR寄在器设詈第[21:201位写01 ==>0x50007000[21:20]= 01
	ldr r0,=0x50007000
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	orr r1,#(0x1<<20)   
	str r1,[r0]
	@2.设置PF10引脚为推挽输出类型,通过GPIOF_OTYPER寄存器设置第[10]位写О--->0x50007004[10]=0
	ldr r0,=0x50007004
	ldr r1,[r0]
	bic r1,#(0x1<<10) 
	str r1,[r0]
	@3.设置PF10引脚为低速输出,通过GPIOF_OSPEEDRE寄存器第[21:20]位写00--->0x50007008[21:20]=00
	ldr r0,=0x50007008
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	str r1,[r0]
	@4.设置PF10引脚禁止上下拉电阻,通GPIOF_PUPDR寄存器设置第[21:20]位写00--->0x5000700c[21:20]=00
	ldr r0,=0x5000700c
	ldr r1,[r0]
	bic r1,#(0x3<<20)
	str r1,[r0]

LED3_INIT:
	@1.设署PE8引脚为输出模式,通过GPTOE MODR寄在器设詈第[17:16]位写01 ==>0x50006000[21:20]= 01
	ldr r0,=0x50006000
	ldr r1,[r0]
	bic r1,#(0x3<<16)
	orr r1,#(0x1<<16)   
	str r1,[r0]
	@2.设置GPIO引脚为推挽输出类型,通过GPIOE_OTYPER寄存器设置第[10]位写О--->0x50006004[8]=0
	ldr r0,=0x50006004
	ldr r1,[r0]
	bic r1,#(0x1<<8) 
	str r1,[r0]
	@3.设置PE8引脚为低速输出,通过GPIOE_OSPEEDRE寄存器第[17:16]位写00--->0x50006008[17:16]=00
	ldr r0,=0x50006008
	ldr r1,[r0]
	bic r1,#(0x3<<16)
	str r1,[r0]
	@4.设置PE8引脚禁止上下拉电阻,通过GPIOE_PUPDR寄存器设置第[17:16]位写00--->0x5000600c[17:16]=00
	ldr r0,=0x5000600c
	ldr r1,[r0]
	bic r1,#(0x3<<16)
	str r1,[r0]

loop:
	bl LED1_ON
	bl delay_1s
	bl LED1_OFF
	bl delay_1s

	bl LED2_ON
	bl delay_1s
	bl LED2_OFF
	bl delay_1s

	bl LED3_ON
	bl delay_1s
	bl LED3_OFF
	bl delay_1s

	b loop

LED1_ON:
	@1.设置PE10引脚输出高电平,通过GPIoE_ODR寄存器设置第〔10]位写1--->	0x50006014[10]=1
	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr
LED1_OFF:
	@1.设置PE10引脚输出低电平--->	0x50006014[10]=0
	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr
LED2_ON:
	@1.设置PE10引脚输出高电平,通过GPIoE_ODR寄存器设置第〔10]位写1--->	0x50006014[10]=1
	ldr r0,=0x50007014
	ldr r1,[r0]
	orr r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr
LED2_OFF:
	@1.设置PE10引脚输出低电平--->	0x50006014[10]=0
	ldr r0,=0x50007014
	ldr r1,[r0]
	bic r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr
LED3_ON:
	@1.设置PF10引脚输出高电平,通过GPIOF_ODR寄存器设置第〔10]位写1--->	0x50006014[10]=1
	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr
LED3_OFF:
	@1.设置PE8引脚输出低电平--->	0x50006014[8]=0
	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr
 

@ 大概1s的延时函数
delay_1s:
	mov r3, #0x10000000
	mm:    @mm是一个标签
	cmp r3, #0
	subne r3, r3, #1
	bne mm
	mov pc, lr

.end

 

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

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

相关文章

基于ArcGis提取道路中心线

基于ArcGis提取道路中心线 文章目录 基于ArcGis提取道路中心线前言一、生成缓冲区二、导出栅格数据三、导入栅格数据四、新建中心线要素五、生成中心线总结 前言 最近遇到一个问题&#xff0c;根据道路SHP数据生成模型的时候由于下载的道路数据杂项数据很多&#xff0c;所以导…

XSS 跨站脚本攻击

XSS(DOM) XSS 又称CSS(Cross Site Scripting)或跨站脚本攻击&#xff0c;攻击者在网页中插入由JavaScript编写的恶意代码&#xff0c;当用户浏览被嵌入恶意代码的网页时&#xff0c;恶意代码将会在用户的浏览器上执行。 XSS攻击可分为三种&#xff1a;分别为反射型(Reflected…

NLP——操作步骤讲义与实践链接

数据集与语料 语料是NLP的生命之源&#xff0c;所有NLP问题都是从语料中学到数据分布的规律语料的分类&#xff1a;单语料&#xff0c;平行语料&#xff0c;复杂结构 语料的例子&#xff1a;Penn Treebank, Daily Dialog, WMT-1x翻译数据集&#xff0c;中文闲聊数据集&#xf…

使用navicat连接postgresql报错问题解决

使用navicat连接postgresql报错问题解决 一、问题现象&#xff1a; 最近使用Navicat来连接postgreSQL数据库&#xff0c;发现连接不上&#xff0c;报错信息如下&#xff1a; 自己百度了一下&#xff0c;发现pgsql 15版本以后&#xff0c;有些系统表的列名改了&#xff0c;pg_…

【tool】快捷操作

最近在弄材料然后文件太深了&#xff0c;交流起来很不方便&#xff0c;做了记录 复制文件路径 复制文件路径步骤&#xff1a; 1、首先按住Shift 鼠标右键单击&#xff0c;弹出&#xff1a;复制为路径 2、快捷键黏贴路径&#xff0c;即可

深入理解 Flutter 图片加载原理 | 京东云技术团队

前言 随着Flutter稳定版本逐步迭代更新&#xff0c;京东APP内部的Flutter业务也日益增多&#xff0c;Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验&#xff0c;但随之也带来了一些OOM问题&#xff0c;通过线上监控信息…

VScode替换cmd powershell为git bash 终端,并设置为默认

效果图 步骤 1. 解决VScode缺少git bash的问题_failed to start bash - is git-bash.exe on the syst_Rudon滨海渔村的博客-CSDN博客效果解决步骤找到git安装目录下的/bin/bash.exe&#xff0c;复制其绝对路径&#xff0c;例如D:\Program Files\Git\bin\bash.exe把路径的右斜…

私域新零售商业模式成功的八大要素

从事互联网行业多年以来&#xff0c;遇到客户问最多的一个问题&#xff0c;就是什么样的模式火呀&#xff1f;在设计一个商业模式时&#xff0c;不单单只是考虑资金和人脉等等资源的&#xff0c;其实还是需要遵循这八大原则&#xff0c;它包括&#xff1a;客户价值最大化原则、…

vite打包配置以及性能优化

vite打包配置以及性能优化 安装插件 首先该安装的插件&#xff0c;你要安装一下吧 这三个是基本的插件&#xff0c;其他优化的插件下面会介绍到 "vite": "4.4.6","vite-plugin-html": "^3.2.0","vitejs/plugin-vue": &qu…

如何在windows电脑安装多个tomcat服务器和乱码问题

前提条件安装jdk 以17版本为例&#xff0c;将jdk8卸载干净 1.首先进入tomcat官网下载 tomcat网址 这里下载tomcat10为例子 1.1 这里选择方式一 下载解压版 2.解压后拷贝三份 分别命名为 8081、 8082、 8083 3.分别对每个tomcat执行以下操作 3.1 找到tomcat所在webapps文…

2023年38页智慧水利整体解决方案PPT

导读&#xff1a;原文《2023年38页智慧水利整体解决方案PPT》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 业务场景与痛点分析 业务架构图 总体目标 按照“建管并…

7-9 大笨钟

分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 微博上有个自称“大笨钟V”的家伙&#xff0c;每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律&#xff0c;所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的&#xff0c;如果正好在某…

矢量绘图UI设计软件Sketch mac中文版软件说明

Sketch mac是一款适用于 UI/UX 设计、网页设计、图标制作等领域的矢量绘图软件。 Sketch mac软件特点 1. 简单易用的界面设计&#xff1a;Sketch 的用户界面简洁明了&#xff0c;使得用户可以轻松上手操作&#xff0c;不需要复杂的学习过程。 2. 强大的矢量绘图功能&#xff1a…

什么是网络地址转换 (NAT)

网络地址转换&#xff08;NAT&#xff09;是更改源和目标 IP 地址和端口的过程&#xff0c;地址转换减少了对 IPv4 公共地址的需求&#xff0c;并隐藏了专用网络地址范围&#xff0c;该过程通常由路由器或防火墙完成。 NAT是如何工作的 NAT 允许单个设备&#xff08;如路由器…

计算机视觉掩模区域与二值图像

掩模区域 在图像处理中&#xff0c;我们经常需要对图像中的某些特定区域进行操作&#xff0c;例如对某个区域进行滤波、变换、裁剪或者其他处理。为了实现这些操作&#xff0c;我们需要明确指定这些区域&#xff0c;这就是掩模区域的作用。 掩模区域通常由一个二值图像表示&…

Centos 防火墙命令

查看防火墙状态 systemctl status firewalld.service 或者 firewall-cmd --state 开启防火墙 单次开启防火墙 systemctl start firewalld.service 开机自启动防火墙 systemctl enable firewalld.service 重启防火墙 systemctl restart firewalld.service 防火墙设置开…

配置使用Gitee账号认证登录Grafana

三方社会化身份源 集成gitee第三方登录 第三方登录的原理 所谓第三方登录&#xff0c;实质就是 OAuth 授权。用户想要登录 A 网站&#xff0c;A 网站让用户提供第三方网站的数据&#xff0c;证明自己的身份。获取第三方网站的身份数据&#xff0c;就需要 OAuth 授权。 举例来…

【Datawhale 科大讯飞-基于论文摘要的文本分类与关键词抽取挑战赛】机器学习方法baseline

内容 科大讯飞AI开发者大赛NLP赛道题目&#xff1a; 基于论文摘要的文本分类与关键词抽取挑战赛 任务&#xff1a; 1.机器通过对论文摘要等信息的理解&#xff0c;判断该论文是否属于医学领域的文献。 2.提取出该论文关键词。 数据集的获取 训练集&#xff1a; 这里读取tit…

ITK-SNAP医学影像处理软件无法打开问题

安装ITK-SNAP后成功打开了一次之后再次打开就一直显示无法打开的提示, 在检查全路径为英文和其他版本的ITK-SNAP仍然无法打开&#xff1b; 解决办法&#xff1a; 根据报错的提示的路径&#xff0c;找到UserPreferences.xml 文件&#xff0c;将xml文件删掉&#xff0c;然后就可以…

关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用

一、方案背景 近几年来&#xff0c;餐饮行业的食品安全、食品卫生等新闻频频发生&#xff0c;比如某火锅店、某网红奶茶&#xff0c;食材以次充好、后厨卫生被爆堪忧&#xff0c;种种问题引起大众关注和热议。这些负面新闻不仅让餐饮门店的品牌口碑暴跌&#xff0c;附带的连锁…