cs
.text
.global _start
_start:
@1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28
LDR R0,=0X50000A28
LDR R1,[R0] @从R0起始地址的4字节数据取出放在R1
ORR R1,R1,#(0X3<<4) @第4位设置为1
STR R1,[R0] @写回
@2、设置PE10、PE8、PF10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
LDR R0,=0X50006000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20) @[21L20] 清0
ORR R1,R1,#(0x1<<20) @设置
BIC R1,R1,#(0x3<<16)
ORR R1,R1,#(0x1<<16)
STR R1,[R0]
LDR R0,=0X50007000
LDR R1,[R0]
BIC R1,R1,#(0x3<<20) @[21L20] 清0
ORR R1,R1,#(0x1<<20) @设置
STR R1,[R0]
@3、设置PE10、PE8、PF10脚为推挽输出 GPIOE_OTYPER[10]->0 0x50006004
LDR R0,=0x50006004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
BIC R1,R1,#(0x1<<8)
STR R1,[R0]
LDR R0,=0x50007004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]
@4、设置PE10、PE8、PF10脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0x50006008
LDR R0,=0X50006008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
BIC R1,R1,#(0x3<<16)
STR R1,[R0]
LDR R0,=0x50007008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]
@5、设置PE10、PE8、PF10脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
LDR R0,=0X5000600C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
BIC R1,R1,#(0x3<<16)
STR R1,[R0]
LDR R0,=0x5000700C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]
@6、PE10输出高低电平 GPIOE_ODR[10]->1(高电平)o(低电平) 0X50006014
@LED1亮灭交替
LOOP:
@LD1亮
LDR R0,=0X50006014
LDR R1,[R0]
ORR R1,R1,#(0X1<<10)
STR R1,[R0]
BL delay
@LD1灭
LDR R0,=0X50006014
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]
BL delay
@LD2亮
LDR R0,=0X50007014
LDR R1,[R0]
ORR R1,R1,#(0X1<<10)
STR R1,[R0]
BL delay
@LD2灭
LDR R0,=0X50007014
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]
BL delay
@LD3亮
LDR R0,=0X50006014
LDR R1,[R0]
ORR R1,R1,#(0X1<<8)
STR R1,[R0]
BL delay
@LD3灭
LDR R0,=0X50006014
LDR R1,[R0]
BIC R1,R1,#(0X1<<8)
STR R1,[R0]
BL delay
B LOOP
@封装延时函数
delay:
LDR R3,=0x10000000
mm:
CMP R3,#0
SUBNE R3,R3,#1
BNE mm
MOV PC,LR @程序返回
.end
现象: