ARM-day5作业

复制代码
.text 
.global _start
_start: 
@1、设置GPIOE、GPIOF寄存器的时钟使能  RCC_MP_AHB4ENSETR[4]->1     0x50000a28
LDR R0,=0x50000a28
LDR R1,[R0]
ORR R1,R1,#(0x3<<4)
STR R1,[R0]


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

LDR R0,=0x50007000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
ORR R1,R1,#(0x1<<20)
STR R1,[R0]

LDR R0,=0x50006000
LDR R1,[R0]
BIC R1,R1,#(0x3<<16)
ORR R1,R1,#(0x1<<16)
STR R1,[R0]


@3、设置PE10、PF10、PE8管脚为推挽输出   GPIOE_OTYPER[10]->0       0x50006004
LDR R0,=0x50006004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]

LDR R0,=0x50007004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]

LDR R0,=0x50006004
LDR R1,[R0]
BIC R1,R1,#(0x1<<8)
STR R1,[R0]


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

LDR R0,=0x50007008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

LDR R0,=0x50006008
LDR R1,[R0]
BIC R1,R1,#(0x3<<16)
STR R1,[R0]


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

LDR R0,=0x5000700c
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]

LDR R0,=0x5000600c
LDR R1,[R0]
BIC R1,R1,#(0x3<<16)
STR R1,[R0]


@6、PE10、PF10、PE8输出高低电平    GPIOE_ODR[10]->1(高电平)  0(低电平)   0x50006014
loop:
	@LED1亮
	LDR R0,=0x50006014
	LDR R1,[R0]
	ORR R1,R1,#(0x1<<10)
	STR R1,[R0]
	BL delay

	@LED1灭
	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

	@LED2灭
	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

	@LED3灭
	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

现象:

相关推荐
路溪非溪2 小时前
Linux中gpio子系统的现代接口
linux·arm开发·驱动开发
senijusene2 小时前
IMX6ULL 平台 I2C 总线:从硬件原理到裸机驱动
c语言·arm开发·驱动开发
mftang4 小时前
ARM架构和主要内核介绍-D
arm开发·cortex-r·cortex-m·cortex-a
路溪非溪9 小时前
Linux内核网络驱动框架
linux·网络·arm开发·驱动开发
青桔柠薯片9 小时前
ADC 接口技术总结:原理、寄存器配置与工程考量
arm开发·imx6ull·adc
Flamingˢ11 小时前
ZYNQ+OV5640+VDMA+HDMI视频链路搭建实录:从摄像头采集到实时显示
arm开发·嵌入式硬件·fpga开发·vim·音视频
晚安Jellyfish11 小时前
驱动---ARM系统移植
arm开发
Hello World . .12 小时前
ARM裸机学习9——ADC模块详解与应用实践
arm开发·嵌入式硬件
惶了个恐12 小时前
嵌入式硬件第九弹——ARM(5)
arm开发·单片机·嵌入式硬件·arm·硬件工程
进击的小头12 小时前
第4篇:嵌入式处理器内核全解析:ARM Cortex-M_R_A系列核心差异与选型指南
arm开发·单片机·嵌入式硬件