网站首页 > 技术文章 正文
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
DCD 20003000 ; Top of Stack
DCD Reset_Handler ; Reset Handler
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler
;EXPORT Reset_Handler [WEAK]
LDR R1, =0x40021018 ; RCC_APB2ENR寄存器地址
LDR R0, [R1]
LDR R2, =0x00000040 ; 对应使能GPIOE时钟的位值(BIT6)
ORR R0, R2
STR R0, [R1]
; 配置PE5为推挽输出模式
LDR R1, =0x40011800 ; GPIOE_CRL寄存器地址,与GPIOE基地址相同,用于配置PE0 - PE7引脚
LDR R0, [R1]
; 清除PE5对应的配置位(20 - 23位)
BIC R0, #(0x0F << 20)
; 设置PE5为推挽输出模式(速度50MHz)对应的配置位(20 - 23位)
ORR R0, #(0x1 << 20)
STR R0, [R1]
MAIN_LOOP
; 设置PE5引脚输出高电平
LDR R1, =0x4001180C ; GPIOE_ODR寄存器地址,用于设置GPIOE端口引脚的输出电平
MOV R2, #(1 << 5) ; 将代表PE5引脚的位设置为1,即高电平
STR R2, [R1]
BL DELAY ; 调用延时函数,保持高电平一段时间
; 设置PE5引脚输出低电平
LDR R1, =0x4001180C ; GPIOE_ODR寄存器地址
MOV R2, #0
STR R2, [R1]
BL.W DELAY ; 调用延时函数,保持低电平一段时间
B MAIN_LOOP ; 跳回主循环,继续循环执行,实现闪烁效果
DELAY
MOV R5, #1000 ; 外层循环次数,可调整该值改变延时长短
MOV R6, #1000 ; 内层循环次数
DELAY_LOOP_OUTER
MOV R6, #1000 ; 每次进入外层循环时,重置内层循环次数
DELAY_LOOP_INNER
SUBS R6, #1 ; 内层循环每次减1
BNE DELAY_LOOP_INNER ; 如果R6不为0,继续内层循环
SUBS R5, #1 ; 外层循环每次减1
BNE DELAY_LOOP_OUTER ; 如果R5不为0,继续外层循环,进入下一轮内层循环
BX LR
NOP
END
猜你喜欢
- 2024-12-20 微软确认Win10更新出现问题:建议完全重置系统
- 2024-12-20 【MFRC522】STM32 MFRC522 IC读卡 程序及原理图
- 2024-12-20 win10更新又双叒翻车 这几天出了这些问题都是它的锅
- 2024-12-20 微软 Win10 KB5003173 更新安装失败,原因是没有新版 Edge浏览器
- 2024-12-20 今年最后一次可选更新:微软Win11推送26100.2454
- 2024-12-20 关于BIOS的入口地址0xFFFF0 bios information
- 2024-12-20 部分Win11 24H2用户反馈微软12月更新BUG:安装失败、蓝屏等
- 2024-12-20 Win10用户反馈安装微软3月更新时遇到0xd0000034错误
- 2024-12-20 Win11 22H2 (KB5017321) 安装更新失败如何修复
- 2024-12-20 R730调整风扇转速 r710风扇速度设置
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)