函式名描述
gpio_init
根據gpio_initstruct中指定的引數初始化外設gpiox暫存器
gpio_readinputdatabit
讀取指定埠管腳的輸入
gpio_readinputdata
讀取指定的gpio埠輸入
gpio_readinputdatabit
讀取指定埠管腳的輸出
gpio_readoutputdata
讀取指定的gpio埠輸出
gpio_setbits
設定指定的資料埠位
gpio_resetbits
清除指定的資料埠位
gpio_writebit
設定或者清除指定的資料埠位
gpio_write
向指定gpio資料埠寫入資料
1.gpio_init函式
void gpio_init(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct);
根據gpio_initstruct中指定的引數初始化外設gpiox暫存器
引數1:gpiox:x可以是a、b、c、d、e,來選擇gpio外設;
引數2:gpio_initstruct:指向結構gpio_inittypedef的指標,包含了外設gpio的配置資訊參閱section:gpio_inittypedef查閱更多該引數允許取值範圍;
例如:
//宣告乙個名為gpio_initstructure的gpio_inittypedef型結構體
gpio_inittypedef gpio_initstructure;
//選中埠1
gpio_initstructure.gpio_pin = gpio_pin_0;
//選擇埠的速度為10m
gpio_initstructure.gpio_speed = gpio_speed_10mhz;
//選擇埠為輸出模式
gpio_initstructure.gpio_mode = gpio_mode_out;
//選擇埠為推挽輸出
gpio_initstructure.gpio_otype = gpio_otype_pp;
//選擇埠為無上拉和下拉
gpio_initstructure.gpio_pupd = gpio_pupd_nopull;
gpio_init(gpioa,&gpio_initstructure);
2.gpio_readinputdatabit函式
uint8_t gpio_readinputdatabit(gpio_typedef* gpiox, uint16_t gpio_pin);
讀取指定埠管腳的輸入
引數1:gpiox:同上
引數2:gpio_pin:待讀取的埠位
例如:
uint8_t readvalue;
readvalue = gpio_readinputdatabit(gpioa,gpio_pin_7);
3.gpio_readinputdata函式
uint16_t gpio_readinputdata(gpio_typedef* gpiox);
讀取指定的gpio埠輸入
例如:
uint16_t readvalue;
readvalue = gpio_readinputdata(gpioa);
4.gpio_setbits函式
void gpio_setbits(gpio_typedef* gpiox, uint16_t gpio_pin);
設定指定的資料埠位
例如:
//設定pa1和pa0為高電平
gpio_setbits(gpioa,gpio_pin_1 |gpio_pin_0);
5.gpio_resetbits函式
void gpio_resetbits(gpio_typedef* gpiox, uint16_t gpio_pin);
清除指定的資料埠位
例如:
//設定pa1和pa0為低電平
gpio_resetbits(gpioa,gpio_pin1 | gpio_pin_0);
6.gpio_writebit函式
void gpio_writebit(gpio_typedef* gpiox, uint16_t gpio_pin, bitaction bitval);
設定或清除指定的資料埠位
例如:
//設定pa1和pa0為低電平
gpio_writebit(gpioa,gpio_pin_1 | gpio_pin_0, bit_reset);
7.gpio_write函式
void gpio_write(gpio_typedef* gpiox, uint16_t portval);
向指向gpio資料埠寫入資料
例如:
//向pa口寫入資料
gpio_write(gpioa,0x0101);
rcc_ahbperiphclockcmd(rcc_ahbenr_gpioaen,enable);
systeminit();
ARM 學習筆記之1 必看的ARM 官方文件
文件1 arm compiler armasm user guide version 6.10.pdf 非常方便查詢arm指令功能及用法。文件2 arm v5 architecture reference manual.pdf 學習cpu架構 記憶體及系統架構的不二之選。文件3 arm926ej s...
ARM9學習筆記之 MMU
我記得有一次我去應聘arm linux軟體工程師。結果被問到arm中的虛擬記憶體是怎麼管理的。由於我只對x86平台下的mmu了解,所以我被問倒了。原來我所學的只是皮毛。還有很多東西值得我去深入。要做arm linux下的驅動,熟悉虛擬記憶體應該是必須的。arm9中的虛擬記憶體是怎麼實現的呢?以下是我...
ARM9學習筆記之 彙編
arm系列晶元與pc系列 可能我說法不太準確 晶元在指令設計上就有本質的區別。arm中每條指令是精簡指令集要麼是32位,要麼是16位。而pc的指令是複雜指令集,一條指令可以由多個位元組組成。1.關於函式呼叫方法 在arm彙編中,函式呼叫非常靈活。1 bl指令 bl initmem 呼叫 initme...