//GPIO的初始化如下:
RCC_APB1ENR = RCC_AHB1ENR | 0x00040800; // 4=UART3 clock, 8=WDG clock
RCC_APB2ENR = 0x00010030; // 1=SPI1 clock, 3=USART1&6 clock
RCC_AHB1ENR = 0x0000000f; // open GPIO port clock
GPIOA_MODER |= 0x0169AA45; // 15 14 13 10 9 7 6 5 4復用; 2 in;0 1 3 8 11 12 out
GPIOB_MODER |= 0x55A55405; // 3 4 10 11復用; 2 in; 0 1 5 6 7 8 9 12 13 14 15 out
GPIOC_MODER = 0xA555A140; // 6 7 14 15復用; 0 1 2 5 in; 3 4 8 9 10 11 12 13 out
#define BITBAND(addr,bitnum) *(volatile unsigned long *)((addr&0xf0000000)+0x02000000+((addr&0x000fffff)<<5)+(bitnum<<2))
#define BIT_ADDR(addr,bitnum) BITBAND(addr,bitnum)
#define PAout(n) BIT_ADDR(0x40020014,n)
#define PBout(n) BIT_ADDR(0x40020414,n)
#define PCout(n) BIT_ADDR(0x40020814,n)
#define PAin(n) BIT_ADDR(0x40020010,n)
#define PBin(n) BIT_ADDR(0x40020410,n)
#define PCin(n) BIT_ADDR(0x40020810,n)
#define SDO PAout(0) // TM1637
#define SDCK PCout(3)
#define SDI PAin(0)
重新理一下 |