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中的对应烧录器的配置;

点击烧录并测试看现象;

相关推荐
weixin_4568083810 小时前
【沁恒蓝牙开发】IAP升级流程
c语言·单片机·嵌入式硬件
万亿少女的梦16813 小时前
基于STM32、RFID与OneNET的开放性实验室电源节点设计
stm32·物联网·onenet·rfid·esp8266
殷忆枫15 小时前
基于STM32+OV2640+ESP8266的无线图像采集系统设计与实现
stm32·单片机·嵌入式硬件
llilian_1615 小时前
便携式相位测量模块应用方案的核心优势
网络·功能测试·单片机
qq_2837200519 小时前
STM32F103 GPIO 端口配置寄存器 CRL / CRH 详解
stm32·单片机·嵌入式硬件
振南的单片机世界19 小时前
NVIC:Cortex-M内核的“中断CPU”
stm32·单片机·嵌入式硬件
KaifuZeng20 小时前
运算放大器学习笔记-虚短和虚断
单片机·嵌入式硬件·运算放大器
张海森-16882020 小时前
cv610的spi0上适配tmi8150b电机ic
单片机
智购科技智能售货柜21 小时前
自动售货机主控方案怎么选?——单片机、树莓派、ESP32的实战对比~YH
单片机·嵌入式硬件