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

点击烧录并测试看现象;

相关推荐
踏着七彩祥云的小丑2 小时前
嵌入式——认识电子元器件——电阻系列
单片机·嵌入式硬件
一个平凡而乐于分享的小比特2 小时前
单片机烧录方式终极指南:ICP、ISP、IAP 深度对比与实战解析
单片机·mongodb·接口隔离原则
WeeJot嵌入式2 小时前
【中断】初识中断以及外部中断的使用
c语言·stm32·单片机·嵌入式硬件·嵌入式
电源海盗船2 小时前
【无标题】
stm32·单片机·嵌入式硬件·开源·硬件工程
笨笨饿11 小时前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
FreakStudio13 小时前
无硬件学LVGL:基于Web模拟器+MiroPython速通GUI开发—布局与空间管理篇
python·单片机·嵌入式·面向对象·并行计算·电子diy
三品吉他手会点灯15 小时前
STM32F103 学习笔记-21-串口通信(第4节)—串口发送和接收代码讲解(中)
笔记·stm32·单片机·嵌入式硬件·学习
项目題供诗17 小时前
STM32-LED闪烁&LED流水灯&蜂鸣器(四)
stm32·单片机·嵌入式硬件
xiangw@GZ20 小时前
EMC原理:四大抗扰度测试原理
单片机·嵌入式硬件