NRF51822裸機GPIO學習筆記

NRF51822裸機GPIO 筆記記錄

數據手冊的管腳圖
在這裏插入圖片描述
GPIO端口外設最多可實現32個引腳,PIN0至PIN31。 所有引腳可配置

    1.輸入輸出;
   	2.驅動能力;
   	3.上拉,下拉配置;
   	4.高電平或低電平觸發器喚醒;
   	5.觸發中斷;
   	6.配置爲PPI事件或者任務;
   	7.配置爲串口或者正交調製信號;

在這裏插入圖片描述
OUTSET:設置某個引腳的輸出爲高電平;
OUTCLR:設置某個引腳的輸出爲低電平;
DIRSET:設置某個引腳的輸入爲高電平;
DIRCLR:設置某個引腳的輸入爲低電平;
(任何位寫 “1” 有效,寫 “0” 無作用。)
PIN_CNF:每一個引腳都可以在PIN_CNF [n]寄存器中單獨配置(n = 0…31)。
配置寄存器:

	•方向
	•驅動強度
	•啓用上拉和下拉電阻
	•引腳感應
	•輸入緩衝區斷開
	•模擬輸入(針對所選引腳)

GPIO操作

使用相關庫函數:nrf_gpio.h
相關定義

// 輸入輸出方向
typedef enum
{
    NRF_GPIO_PORT_DIR_OUTPUT,       ///<  Output
    NRF_GPIO_PORT_DIR_INPUT         ///<  Input
} nrf_gpio_port_dir_t;
//推輓設置:無上下拉、下拉、上拉
typedef enum
{
    NRF_GPIO_PIN_NOPULL   = GPIO_PIN_CNF_PULL_Disabled,                 ///<  Pin pullup resistor disabled
    NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown,                 ///<  Pin pulldown resistor enabled
    NRF_GPIO_PIN_PULLUP   = GPIO_PIN_CNF_PULL_Pullup,                   ///<  Pin pullup resistor enabled
} nrf_gpio_pin_pull_t;

...........

常用函數
//輸入輸出:

__STATIC_INLINE void nrf_gpio_cfg_output(uint32_t pin_number)
__STATIC_INLINE void nrf_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config)

// 引腳寫:

__STATIC_INLINE void nrf_gpio_pin_set(uint32_t pin_number);  //輸出高電平
__STATIC_INLINE void nrf_gpio_pin_clear(uint32_t pin_number)//輸出低電平
__STATIC_INLINE void nrf_gpio_pin_toggle(uint32_t pin_number);  //電平反轉

//引腳讀:

__STATIC_INLINE void nrf_gpio_pin_read(uint32_t pin_number);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章