設置 | 登錄 | 註冊

目前共有2篇帖子。

【STM32入門級程序2】編寫LED二進位加法程序,不使用庫函數

1樓 巨大八爪鱼 2016-4-23 16:37
【程序】
#include <stm32f10x.h>

#define _BV(n) (1 << (n))

uint8_t n = 0;

void delay()
{
    int i, j;
    for (i = 0; i < 1000; i++)
        for (j = 0; j < 1000; j++);
}

void init()
{
    int i;
    RCC->APB2ENR |= _BV(3); // 打開GPIOB的時鐘
    
    // 把PB8~15都設置為輸出模式
    for (i = 0; i < 8; i++)
    {
        GPIOB->CRH &= ~_BV(4 * i + 1);
        GPIOB->CRH |= _BV(4 * i);
    }
    
    GPIOB->ODR = 0x00; // 開始時關閉所有LED燈
}

int main()
{
    init();
    
    while (1)
    {
        delay();
        GPIOB->ODR = n << 8;
        n++;
    }
}

void SystemInit()
{
}

2樓 巨大八爪鱼 2016-4-23 16:39
【知識點】
通過對寄存器GPIOB->ODR賦值,可以一次性設置PB口中所有的I/O口的輸出狀態。

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
©2010-2025 Purasbar Ver3.0 [手機版] [桌面版]
除非另有聲明,本站採用知識共享署名-相同方式共享 3.0 Unported許可協議進行許可。