在72 下點亮

2021-07-24 05:20:14 字數 3106 閱讀 8395

#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,具體公升級過程...