簡體   English   中英

示例:如何在匯編中打開 STM32 上的 LED2?

[英]Example: How To Turn On LED2 On STM32 In Assembly?

嘿,只是想知道是否有人可以發布一個示例,說明如何使用 GPIO_MODR、AHB1ENR 和 GPIO_BSSR 在裝配過程中在 STM32 板上設置 LED,非常感謝任何幫助; 謝謝!

編譯你的 C 代碼。 看看它是如何在編譯后的代碼中完成的(GPIOA 端口,引腳 10):


#include <stdint.h>

#define __IO volatile

typedef struct
{
  __IO uint32_t MODER;    /*!< GPIO port mode register,               Address offset: 0x00      */
  __IO uint32_t OTYPER;   /*!< GPIO port output type register,        Address offset: 0x04      */
  __IO uint32_t OSPEEDR;  /*!< GPIO port output speed register,       Address offset: 0x08      */
  __IO uint32_t PUPDR;    /*!< GPIO port pull-up/pull-down register,  Address offset: 0x0C      */
  __IO uint32_t IDR;      /*!< GPIO port input data register,         Address offset: 0x10      */
  __IO uint32_t ODR;      /*!< GPIO port output data register,        Address offset: 0x14      */
  __IO uint32_t BSRR;     /*!< GPIO port bit set/reset,               Address offset: 0x18      */
  __IO uint32_t LCKR;     /*!< GPIO port configuration lock register, Address offset: 0x1C      */
  __IO uint32_t AFR[2];   /*!< GPIO alternate function registers,     Address offset: 0x20-0x24 */
} GPIO_TypeDef;

#define PERIPH_BASE               (0x40000000UL) /*!< Base address of : AHB/APB Peripherals                                                   */
#define D3_AHB1PERIPH_BASE       (PERIPH_BASE + 0x18020000UL)
#define GPIOA_BASE            (D3_AHB1PERIPH_BASE + 0x0000UL)
#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)

void foo()
{
    GPIOA -> MODER &= ~(0b11 << (10 * 2));
    GPIOA -> MODER |= 1 << (10 * 2);
    while(1)
    {
        GPIOA -> BSRR = 1 << 10;
        GPIOA -> BSRR = 1 << (10 + 16);
    }
}

foo:
        ldr     r3, .L3
        mov     r1, #1024
        ldr     r2, [r3]
        bic     r2, r2, #3145728
        str     r2, [r3]
        ldr     r2, [r3]
        orr     r2, r2, #1048576
        str     r2, [r3]
        mov     r2, #67108864
.L2:
        str     r1, [r3, #24]
        str     r2, [r3, #24]
        b       .L2
.L3:
        .word   1476526080

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM