.text
.global _start
_start:
/* 使能GPIOE、GPIOF寄存器 RCC_MP_AHB4ENSETR
* 基地址: 0x50000000 + 偏移地址: 0xA28 = 0x50000A28
* RCC_MP_AHB4ENSETR[4]->1 RCC_MP_AHB4ENSETR[5]->1
*/
LDR R0,=0x50000A28
LDR R1,[R0]
ORR R1,R1,#(0x1<<4)
STR R1,[R0]
LDR R0,=0x50000A28
LDR R1,[R0]
ORR R1,R1,#(0x1<<5)
STR R1,[R0]
/* 設置PE10,PE8,PF10引腳為輸出模式
* GPIOF基地址: 0x50007000 + 偏移地址: 0x00 = 0x50007000
* GPIOE基地址: 0x50006000 + 偏移地址: 0x00 = 0x50006000
* PE10: GPIOE_MODER[21:20]->01
* PF10: GPIOF_MODER[21:20]->01
* PE8: GPIOE_MODER[17:16]->01
*/
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<<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]
/* 設置PE10,PE8,PF10引腳為推挽輸出
* GPIOF基地址: 0x50007000 + 偏移地址: 0x04 = 0x50007004
* GPIOE基地址: 0x50006000 + 偏移地址: 0x04 = 0x50006004
* GPIOE_OTYPER[10]->0
* GPIOF_OTYPER[10]->0
* GPIOE_OTYPER[8]->0
*/
LDR R0,=0x50007004
LDR R1,[R0]
BIC R1,R1,#(0x1<<10)
STR R1,[R0]
LDR R0,=0x50006004
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]
/* 設置PE10,PE8,PF10引腳為低速輸出
* GPIOF基地址: 0x50007000 + 偏移地址: 0x08 = 0x50007008
* GPIOE基地址: 0x50006000 + 偏移地址: 0x08 = 0x50006008
* GPIOE_OSPEEDR[21:20]->00
* GPIOF_OSPEEDR[21:20]->00
* GPIOE_OSPEEDR[17:16]->00
*/
LDR R0,=0x50007008
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]
LDR R0,=0x50006008
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]
/* 設置PE10,PE8,PF10引腳沒有上下拉電阻
* GPIOF基地址: 0x50007000 + 偏移地址: 0x0C = 0x5000700C
* GPIOE基地址: 0x50006000 + 偏移地址: 0x0C = 0x5000600C
* GPIOE_PUPDR[21:20]->00
* GPIOF_PUPDR[21:20]->00
* GPIOE_PUPDR[17:16]->00
*/
LDR R0,=0x5000700C
LDR R1,[R0]
BIC R1,R1,#(0x3<<20)
STR R1,[R0]
LDR R0,=0x5000600C
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]
/* 設置PE10,PE8,PF10實現(xiàn)流水燈
* GPIOF基地址: 0x50007000 + 偏移地址: 0x14 = 0x50007014
* GPIOE基地址: 0x50006000 + 偏移地址: 0x14 = 0x50006014
* GPIOE_ODR[10]->1
* GPIOF_ODR[10]->1
* GPIOE_ODR[8]->1
*/
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
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
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
/* 延時函數(shù) */
delay:
LDR R4,=0X1000000
mm:
CMP R4,#0
SUBNE R4,R4,#1
BNE mm
MOV PC,LR
.end
文章來源地址http://www.zghlxwxcb.cn/news/detail-726852.html
文章來源:http://www.zghlxwxcb.cn/news/detail-726852.html
到了這里,關于STM32MP157匯編流水燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!