stm32f103汇编-1:LED点灯

汇编点灯

1.软硬件介绍

MCU:STM32F103xxx(72 MHz)

LED:PC13 管脚

编译器:Keil自带

功能: 对PC13外接的led进行控制闪烁

2.源码内容

复制代码
;=================================================
; STM32F103 PC13 LED Blink (Pure Assembly)
;=================================================

    AREA    RESET, DATA, READONLY
    EXPORT  __Vectors
__Vectors
    DCD     StackTop       ; MSP
    DCD     Reset_Handler  ; Reset

    AREA    STACK, NOINIT, READWRITE, ALIGN=3
StackMem
    SPACE   1024
StackTop

    AREA    FLASH, CODE, READONLY
    THUMB

;------------------------------
; 寄存器地址定义
;------------------------------
RCC_APB2ENR   EQU     0x40021018
GPIOC_CRH     EQU     0x40011004
GPIOC_ODR     EQU     0x4001100C

;------------------------------
; 复位入口
;------------------------------
Reset_Handler
    ; 1) 开启 GPIOC 时钟 (APB2ENR bit 4)
    LDR     R0, =RCC_APB2ENR
    LDR     R1, [R0]  ;寄存器寻址读取寄存器里的数据到R1寄存器中
    ORR     R1, R1, #(1 << 4)  ;对R1中的值bit4进行或运算后重新赋值给R1
    STR     R1, [R0]    ;R1中的值写回R0指向的寄存器中  

    ; 2) 配置 PC13 为输出 (CRH bits 20-23)
    LDR     R0, =GPIOC_CRH
    LDR     R1, [R0]
    BIC     R1, R1, #(0xF << 20)   ; 清除 PC13
    ORR     R1, R1, #(0x3 << 20)   ; 输出 50MHz
    STR     R1, [R0]

;------------------------------
; 主循环
;------------------------------
MainLoop
    ; LED ON (PC13 = 0)
    LDR     R0, =GPIOC_ODR
    LDR     R1, [R0]
    BIC     R1, R1, #(1 << 13)  ;清除bit13的位
    STR     R1, [R0]

    BL      Delay

    ; LED OFF (PC13 = 1)
    LDR     R0, =GPIOC_ODR
    LDR     R1, [R0]
    ORR     R1, R1, #(1 << 13)  ;bit13的位置为1
    STR     R1, [R0]

    BL      Delay

    B       MainLoop

;------------------------------
; 简单延时函数
;------------------------------
Delay
    MOV     R2, #500000
DelayLoop
    SUBS    R2, R2, #1
    BNE     DelayLoop
    BX      LR

    END

3.环境部署和测试

将代码复制到keil中芯片的启动文件中;

在keil中编译生成执行文件;

连接板卡和pc;

设置keil中的对应烧录器的配置;

点击烧录并测试看现象;

相关推荐
Zw-awa11 小时前
传感器是什么:让 STM32 知道车外发生了什么
stm32
女神下凡14 小时前
芯参谋(41):DDR2_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
国科安芯17 小时前
商业立方星平台中高集成度抗辐射MCU的功耗优化与批量化应用可行性探讨
单片机·嵌入式硬件·架构·risc-v·抗辐射·as32x601
女神下凡17 小时前
芯参谋(40):UFS 电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
iCxhust18 小时前
CAN信号电平与485信号电平实测
单片机·can·通讯·rs485
iCxhust19 小时前
51单片机电力载波应用开发(七)广播通讯
c语言·开发语言·单片机·嵌入式硬件·51单片机
Brilliantwxx19 小时前
【STM32】基础定时器 TIM 详解:从极简原理到寄存器全解析
stm32·单片机·嵌入式硬件·mcu
Hi2024021719 小时前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac
DS小龙哥19 小时前
从呼吸心率到离床报警:60G雷达睡眠仪全栈开发实录(硬件+MQTT+小程序)DIY一台全功能睡眠监护仪
stm32·单片机·嵌入式硬件·物联网·小程序·智能家居
lhbweilai20 小时前
深挖FreeRTOS内核实现(二)
c语言·汇编·stm32·单片机