#define _io volatile
typedef unsigned int uint32_t;
typedef _io uint32_t vu32;
typedef unsigned short
int uint16_t;
#define gpio_pin_0 ((uint16_t)0x0001)//0000000000000001第一引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_1 ((uint16_t)0x0002)//0000000000000010第二引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_2 ((uint16_t)0x0004)//0000000000000100第三引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_3 ((uint16_t)0x0008)//0000000000001000第四引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_4 ((uint16_t)0x0010)//0000000000010000第五引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_5 ((uint16_t)0x0020)//0000000000100000第六引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_6 ((uint16_t)0x0040)//0000000001000000第七引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_7 ((uint16_t)0x0080)//0000000010000000第八引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_8 ((uint16_t)0x0100)//0000000100000000第九引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_9 ((uint16_t)0x0200)//0000001000000000第十引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_10 ((uint16_t)0x0400)//0000010000000000第11引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_11 ((uint16_t)0x0800)//0000100000000000第12引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_12 ((uint16_t)0x1000)//0001000000000000第13引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_13 ((uint16_t)0x2000)//0010000000000000第14引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_14 ((uint16_t)0x4000)//0100000000000000第15引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_15 ((uint16_t)0x8000)//1000000000000000第16引腳置1(對應的是bsrr和brr暫存器的16位)
#define gpio_pin_all ((uint16_t)0xffff)//1111111111111111
#define rcc_apb2periph_afio ((uint32_t)0x00000001)
#define rcc_apb2periph_gpioa ((uint32_t)0x00000004)
#define rcc_apb2periph_gpiob ((uint32_t)0x00000008)
#define rcc_apb2periph_gpioc ((uint32_t)0x00000010)
#define rcc_apb2periph_gpiod ((uint32_t)0x00000020)//這個是0000000000010000 主要是為了配合時鐘的16位(其中第5位是io口d的使能時鐘位)
/***************gpiod**********/
typedef struct
gpio_typedef;
typedef struct
rcc_typedef;
typedef struct
flash_typedef;
/***********gpio管腳的記憶體位址***********/
#define periph_base ((uint32_t)0x40000000)
#define apb2periph_base (periph_base+0x10000)
#define gpiod_base (apb2periph_base+0x1400)
#define gpiod ((gpio_typedef *)gpiod_base)
/**********rcc時鐘***********************/
#define ahbperiph_base (periph_base+0x20000)
#define rcc_base (ahbperiph_base+0x1000)
#define rcc ((rcc_typedef *)rcc_base)
#define apb1periph_base periph_base
#define apb2periph_base (periph_base + 0x10000)
#define ahbperiph_base (periph_base + 0x20000)
#define flash_r_base (ahbperiph_base + 0x2000)
#define flash ((flash_typedef *)flash_r_base)
void delay(uint32_t ncount)
int main(void)
}在這裡我詳細介紹了,大家可以去看看[這裡寫鏈結內容](
在CentOS 7 2下公升級gcc編譯器的版本
預設情況下,centos 7.2預裝的gcc版本是4.8.x,通過執行命令 gcc v 可以看到,一般情況下這個版本的編譯器已經滿足需要了,但是某些特殊的時候為了支援c 更高的特性,需要對gcc編譯器的版本進行公升級,比如安裝最新的mariadb 10的時候,就需要使用高版本的gcc,具體公升級過程...
在CentOS 7 2下公升級gcc編譯器的版本
預設情況下,centos 7.2預裝的gcc版本是4.8.x,通過執行命令 gcc v 可以看到,一般情況下這個版本的編譯器已經滿足需要了,但是某些特殊的時候為了支援c 更高的特性,需要對gcc編譯器的版本進行公升級,比如安裝最新的mariadb 10的時候,就需要使用高版本的gcc,具體公升級過程...
在CentOS 7 2下公升級gcc編譯器的版本
預設情況下,centos 7.2預裝的gcc版本是4.8.x,通過執行命令 gcc v 可以看到,一般情況下這個版本的編譯器已經滿足需要了,但是某些特殊的時候為了支援c 更高的特性,需要對gcc編譯器的版本進行公升級,比如安裝最新的mariadb 10的時候,就需要使用高版本的gcc,具體公升級過程...