day10.8ubentu流水灯

流水灯

复制代码
.text 
.global _start
_start: 
	@1.设置GPIOE寄存器的时钟使能  RCC_MP_AHB4ENSETR[4]->1     0x50000a28
	LDR R0,=0X50000A28
	LDR R1,[R0]  @从r0为起始地址的4字节数据取出放在R1
	ORR R1,R1,#(0x1<<4)  @第4位设置为1
	STR R1,[R0]  @写回

	@2.设置PE10管脚为输出模式  GPIOE_MODER[21:20]->01   0x50006000
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0] 

	@3.设置PE10管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0] 


	@4.设置PE10管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0] 

	@5.设置PE10管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]

	@2.设置PE8管脚为输出模式  GPIOE_MODER[21:20]->01   0x50006000
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	ORR R1,R1,#(0X1<<16) @设置
	STR R1,[R0] 

	@3.设置PE8管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8)
	STR R1,[R0] 


	@4.设置PE8管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	STR R1,[R0] 

	@5.设置PE8管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	STR R1,[R0] 

	@1.设置GPIOF寄存器的时钟使能  RCC_MP_AHB4ENSETR[5]->1     0x50000a28
	LDR R0,=0X50000A28
	LDR R1,[R0]  @从r0为起始地址的4字节数据取出放在R1
	ORR R1,R1,#(0x1<<5)  @第4位设置为1
	STR R1,[R0]  @写回

	@2.设置PF10管脚为输出模式  GPIOE_MODER[21:20]->01   0x50007000
	LDR R0,=0x50007000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0] 

	@3.设置PF10管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50007004
	LDR R0,=0X50007004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0] 


	@4.设置PF10管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50007008
	LDR R0,=0x50007008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0] 

	@5.设置PF10管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000700C
	LDR R0,=0x5000700c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]



@  6.PE10输出高低电平      GPIOE_ODR[10]->1(高电平)  0(低电平)    0X50006014
@LED1亮灭交替
loop:
    @亮
    LDR R0,=0X50006014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50006014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
	@LED2亮灭交替
    @亮
    LDR R0,=0X50007014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50007014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
	@LED3亮灭交替
    @亮
    LDR R0,=0X50006014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<8)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50006014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<8)
    STR R1,[R0]
    BL delay



    b loop



@封装延时函数

delay:
    LDR R4,=0X10000000
mm:
    cmp r4,#0
    subne r4,r4,#1
    bne mm
    mov pc,lr  @程序返回
	

.end

相关推荐
索端阳3 小时前
初识 ARM Cortex-A7,嵌入式底层入门总结
汇编·嵌入式硬件
ThornArmor1 天前
重铸1996|肉体渲染:关节的裂缝:分段模型积木拼装与未成熟的 RSP 矩阵骨骼动画形变
c语言·汇编·c++·python·硬件架构·游戏机
星栖与芯1 天前
LiteOS-M 切换汇编逐行图解(1):汇编是什么·寄存器与栈
汇编·stm32·嵌入式硬件·harmonyos·鸿蒙系统
yume_sibai1 天前
11-Rust 不安全编程(unsafe 关键字 + 裸指针 + FFI + 内联汇编 + 内存安全保证)
汇编·安全·rust
小杨不想秃头3 天前
信息安全工程师 历年真题原题汇编(2016–2025)
汇编
2601_9622965112 天前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
Freak嵌入式13 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
kyle~18 天前
x86 汇编LOCK前缀 --- 硬件架构向软件提供的核心同步原语
汇编·c++·性能优化·硬件架构·实时系统
典典分享指南19 天前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
极客互动API24 天前
企业微信 iPad 协议服务搭建与 AI 回调实战
网络·汇编·人工智能·微信·企业微信·ipad