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

点击烧录并测试看现象;

相关推荐
白搞电子6 小时前
ESP-Mosaico 轮滑动画编排台:拍点吸附、完整动作编辑与工程保存
单片机·嵌入式硬件·电脑
玄芯散人7 小时前
【元婴·114】SD卡和FatFS文件系统:数据持久化
stm32·sd卡·fatfs
水饺编程7 小时前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编
cu1437 小时前
细谈IT6653的具体功能与其应用
c语言·c++·单片机·嵌入式硬件
夏虫不可与之言冰8 小时前
RMT 与 WS2812 灯带:可寻址 RGB 全彩控制
c语言·c++·单片机·物联网·visual studio
三佛科技-134163842129 小时前
微针美容仪数显方案开发案例,微针美容仪方案单片机选择(FT62F23X,FT62F288-LRB,FT32A072)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
天空'之城9 小时前
单片机基础核心知识点汇总(四十九)
单片机·嵌入式硬件
国科安芯9 小时前
星上计算的第一道防线:低轨遥感卫星载荷处理链中的AS32S601型抗辐射MCU—— 面向高分辨率成像与在轨智能处理的场景化综述
大数据·网络·人工智能·单片机·算法·低轨卫星·抗辐射
新晨单片机设计10 小时前
S032A-基于STM32单片机智能加湿器【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·智能加湿器
硅基造物主10 小时前
STM32 从 0 到 1 做智能家居(九):按键消抖与三模式状态机
stm32·单片机·嵌入式硬件·cubemx·智能家居