目前共有2篇帖子。
【STM32入門級程序3】1位共陰數碼管循環顯示數字0~9
1樓 巨大八爪鱼 2016-4-23 16:50
【程序】
#include <stm32f10x.h>

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

uint8_t n = 0;
uint8_t segdisp[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 共陽數碼管段碼錶,取反後就是共陰的段碼

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);
    }
}

int main()
{
    init();
   
    while (1)
    {
        GPIOB->ODR = (~segdisp[n]) << 8;
        delay();
        n++;
        if (n > 9)
            n = 0;
    }
}

void SystemInit()
{
}

2樓 巨大八爪鱼 2016-4-23 16:51
GPIOB->ODR = ~segdisp[n] << 8;
這裡其實不需要括號

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。