赞
踩
-
-
-
- .text
- .global _start
- _start:
-
- @使能GPIOE的外设时钟 RCC_MP_AHB4ENSETR 0x50000a28 [4]->1
- LDR R0,=0X50000A28 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- ORR R1,R1,#(0x1<<4) @[4]设置为1
- STR R1,[R0] @将修改之后的值写回去
-
- @使能GPIOF的外设时钟 RCC_MP_AHB4ENSETR 0x50000a28 [5]->1
- LDR R0,=0X50000A28 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- ORR R1,R1,#(0x1<<5) @[5]设置为1
- STR R1,[R0] @将修改之后的值写回去
-
-
- @LED1
-
- @设置PE10为输出 GPIOE_MODER [21:20]->01 0X50006000
- LDR R0,=0X50006000 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<20) @[21:20]设置为00
- ORR R1,R1,#(0x1<<20) @[21:20]设置为01
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE10为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
- LDR R0,=0X50006004 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<10) @[10]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE10低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
- LDR R0,=0X50006008 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<20) @[21:20]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE10无上拉下拉电阻 GPIOx_PUPDR
- LDR R0,=0X5000600C @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<20) @[21:20]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
-
-
-
- @LED2
-
- @设置PF10为输出 GPIOE_MODER [21:20]->01 0X50007000
- LDR R0,=0X50007000 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<20) @[21:20]设置为00
- ORR R1,R1,#(0x1<<20) @[21:20]设置为01
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PF10为推挽输出 GPIOE_OTYPER[10]->0 0X50007004
- LDR R0,=0X50007004 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<10) @[10]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PF10低速输出 GPIOE_OSPEEDR[21:20]->00 0X50007008
- LDR R0,=0X50007008 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<20) @[21:20]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PF10无上拉下拉电阻 GPIOx_PUPDR
- 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 0X50006000
- LDR R0,=0X50006000 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<16) @[17:16]设置为00
- ORR R1,R1,#(0x1<<16) @[17:16]设置为01
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE8为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
- LDR R0,=0X50006004 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<8) @[8]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE8低速输出 GPIOE_OSPEEDR[17:16]->00 0X50006008
- LDR R0,=0X50006008 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<16) @[17:16]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- @设置PE8无上拉下拉电阻 GPIOx_PUPDR
- LDR R0,=0X5000600C @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x3<<16) @[17:16]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
-
-
-
- LOOP: @不让程序结束
-
- @LED1
- bl LED_ON
- bl DELAY
- bl LED_OFF
- bl DELAY
- B LOOP
-
-
- @亮灯
- LED_ON:
- @LED1
- LDR R0,=0X50006014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- ORR R1,R1,#(0x1<<10) @[10]设置为1
- STR R1,[R0] @将修改之后的值写回去
- @LED2
- LDR R0,=0X50007014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- ORR R1,R1,#(0x1<<10) @[10]设置为1
- STR R1,[R0] @将修改之后的值写回去
- @LED3
- LDR R0,=0X50006014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- ORR R1,R1,#(0x1<<8) @[8]设置为1
- STR R1,[R0] @将修改之后的值写回去
-
- MOV PC,LR @程序返回
-
- @灭灯
- LED_OFF:
- @LED1
- LDR R0,=0X50006014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<10) @[10]设置为0
- STR R1,[R0] @将修改之后的值写回去
- @LED2
- LDR R0,=0X50007014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<10) @[10]设置为0
- STR R1,[R0] @将修改之后的值写回去
- @LED3
- LDR R0,=0X50006014 @指定基地址
- LDR R1,[R0] @将寄存器数据读取出来保存到R1中
- BIC R1,R1,#(0x1<<8) @[8]设置为0
- STR R1,[R0] @将修改之后的值写回去
-
- MOV PC,LR @程序返回
-
- @延时函数
- DELAY:
- LDR R3,=0X10000000
- MM:
- CMP R3,#0
- SUBNE R3,R3,#1
- BNE MM
- MOV PC,LR @程序返回
-
- .end
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。