STM32F103 >> Assembly

Button


參考資料:
1. pdf

RCC_APB2ENR暫存器,需要開啟GPIO-B、GPIO-C的Clock


LED位置是PC13,設定成Output 50MHz,按鍵則是PB10,設定成Pull-Up


輸出資料


輸入資料


main.s

  .thumb
  .cpu cortex-m3
  .syntax unified
 
  .equ GPIOB_CRL,   0x40010c00
  .equ GPIOB_CRH,   0x40010c04
  .equ GPIOB_IDR,   0x40010c08
  .equ GPIOB_ODR,   0x40010c0c
  .equ GPIOB_BSRR,  0x40010c10
  .equ GPIOB_BRR,   0x40010c14
  .equ GPIOB_LCKR,  0x40010c18
  .equ GPIOC_CRL,   0x40011000
  .equ GPIOC_CRH,   0x40011004
  .equ GPIOC_IDR,   0x40011008
  .equ GPIOC_ODR,   0x4001100c
  .equ GPIOC_BSRR,  0x40011010
  .equ GPIOC_BRR,   0x40011014
  .equ GPIOC_LCKR,  0x40011018
  .equ RCC_APB2ENR, 0x40021018
 
  .equ STACKINIT,   0x20005000
   
  .global _start
  .section .text
  .org 0x0
  .word STACKINIT
  .word _start
 
  .org 0x100
  .align 2
  .thumb_func
_start:
  ldr r0, =0x00000018
  ldr r1, =RCC_APB2ENR
  str r0, [r1]

  ldr r0, =GPIOB_CRH
  ldr r1, =(2 << 10)
  str r1, [r0]

  ldr r0, =GPIOB_ODR
  ldr r1, =(1 << 10)
  str r1, [r0]

  ldr r0, =GPIOC_CRH
  ldr r1, =(3 << 20)
  str r1, [r0]

loop:
  ldr r0, =GPIOB_IDR
  ldr r1, [r0]
  and r1, 0x400
  lsl r1, 3
  ldr r0, =GPIOC_ODR
  str r1, [r0]
  b loop
  .end

完成


返回上一頁