基于cortex-A7

该程序用于STM32微控制器,实现对GPIOE的PE10(LED1)、GPIOF的PF10(LED2)和GPIOE的PE8(LED3)的初始化,设置为推挽输出模式,低速输出,并进行点灯控制,包括开关和1秒延时功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



.text 
.global _start
_start: 

/**********LED1点灯**************/

/*给GPIOE寄组器使能*/
RCC_init:	
	ldr r0,=0x50000A28
	ldr r1,[r0]
	orr r1,r1,#(0x1<<4)
	str r1,[r0]

/*给LED1灯初始化*/
LED1_INET:

	ldr r0,=0x50006000 @通过寄存器GPIOE_MODER将PE10的引脚设置为输出模式
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	orr r1,r1,#(0x1<<20)
	str r1,[r0]

	ldr r0,=0x50006004 @通过寄存器GPIOE_OTYPER将PE10的引脚设置为推挽
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]


	ldr r0,=0x50006008 @通过寄存器GPIOE_OSPEEDR将PE10的引脚设置为低速输出模式
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]

	ldr r0,=0x5000600c @通过寄存器GPIOE_PUPDR将PE10的引脚设置为不上下拉
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]







	loop:
	bl LED1_ON   
	bl delay_1s
	bl LED1_OFF
	bl delay_1s
	bl RCC_init_GIOPF
	bl LED2_INET
	bl LED2_ON 
	bl delay_1s
	bl LED2_OFF
	bl delay_1s
	bl RCC_init_led2
	bl LED3_INET
	bl LED3_ON
	bl delay_1s
	bl LED3_OFF
	bl delay_1s
	b loop

/*LED2 PF10初始化*/

RCC_init_GIOPF:
	 ldr r0,=0x50000A28  
	 ldr r1,[r0]
	 orr r1,r1,#(0x1<<5)
	 str r1,[r0]
	mov pc,lr
	 
LED2_INET:
	ldr r0,=0x50007000 @通过寄存器GPIOE_MODER将PF10的引脚设置为输出模式
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	orr r1,r1,#(0x1<<20)
	str r1,[r0]
	
	ldr r0,=0x50007004 @通过寄存器GPIOE_OTYPER将PF10的引脚设置为推挽
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]

	ldr r0,=0x50007008 @通过寄存器GPIOE_OSPEEDR将PF10的引脚设置为低速输出模式
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]

	ldr r0,=0x5000700c @通过寄存器GPIOE_PUPDR将PF10的引脚设置为不上下拉
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]
	mov pc,lr

/* LED3 PE8初始化*/

RCC_init_led2:	
	ldr r0,=0x50000A28
	ldr r1,[r0]
	orr r1,r1,#(0x1<<4)
	str r1,[r0]

LED3_INET:
 	ldr r0,=0x50006000 @通过寄存器GPIOE_MODER将PE8的引脚设置为输出模式
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	orr r1,r1,#(0x1<<16)
	str r1,[r0]
 				
	ldr r0,=0x50006004					@通过寄存器GPIOE_OTYPER将PF8的引脚设置为推挽
	ldr r1,[r0]
	bic r1,r1,#(0x1<<8)
	str r1,[r0]
	
	ldr r0,=0x50006008						@通过寄存器GPIOE_OSPEEDR将PF8的引脚设置为低速输出模
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	str r1,[r0]
	
	ldr r0,=0x5000600c								@通过寄存器GPIOE_PUPDR将PF8的引脚设置为不上下拉
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	str r1,[r0]
mov pc,lr


LED1_ON:


	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr

LED1_OFF:

	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr



LED2_ON:
ldr r0,=0x50007014
ldr r1,[r0]
orr r1,r1,#(0x1<<10)
str r1,[r0]
	mov pc,lr
 
LED2_OFF:
ldr r0,=0x50007014
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]
	mov pc,lr

LED3_ON:


	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr

LED3_OFF:

	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr
@ 大概1s的延时函数
delay_1s:
	mov r3, #0x10000000
	mm:
	cmp r3, #0
	subne r3, r3, #1
	bne mm
	mov pc,lr




.end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值