91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

nrf52832藍(lán)牙BLE開發(fā)系列教程4------NRF52832之GPIO篇

GPIO操作是單片機(jī)最基本和最常用的操作,在配置GPIO控制LED燈、檢測(cè)按鍵輸入等功能時(shí)都需要用到。NRF52832的GPIO可設(shè)置為:輸入、輸出、復(fù)用和模擬通道 4 種模式,一部分與I2C,SPI,UART復(fù)用。管腳內(nèi)部結(jié)構(gòu)如下圖所示:

一、GPIO寄存器

1、OUT寄存器:實(shí)現(xiàn)寫GPIO端口,bit0-31對(duì)應(yīng)引腳P0.00-P0.31,為0表示引腳輸出低電平,為1表示引腳輸出高電平;

2、OUTSET寄存器:實(shí)現(xiàn)引腳置位,bit0-31對(duì)應(yīng)引腳P0.00-P0.31;

3、OUTCLR寄存器:實(shí)現(xiàn)引腳清零;

4、IN寄存器:實(shí)現(xiàn)讀GPIO端口;

5、DIR寄存器:實(shí)現(xiàn)引腳的方向配置,為0引腳是輸入方向,為1引腳是輸出方向;

6、DIRSET寄存器:實(shí)現(xiàn)引腳輸出方向配置;

7、DIRCLR寄存器:實(shí)現(xiàn)引腳輸入方向配置;

8、LATCH寄存器:實(shí)現(xiàn)鎖存電平信號(hào);

9、DETECTMODE寄存器:實(shí)現(xiàn)檢測(cè)模式配置;

10、PIN_CNF[n](n=0-31)寄存器:實(shí)現(xiàn)輸入緩沖器、上下拉電阻、驅(qū)動(dòng)能力等的配置。

二、相關(guān)庫(kù)函數(shù)介紹

1、void nrf_gpio_cfg_output(uint32_t pin_number)功能:設(shè)置指定引腳為輸出方向

2、void nrf_gpio_range_cfg_output(uint32_t pin_range_start,uint32_t pin_range_end)功能:設(shè)置指定范圍內(nèi)的連續(xù)引腳為輸出方向

3、void nrf_gpio_cfg_input(uint32_t pin_number,nrf_gpio_pin_pull_t pull_config)功能:設(shè)置指定引腳為輸入方向

4、void nrf_gpio_range_cfg_input(uint32_t pin_range_start,uint32_t pin_range_end,nrf_gpio_pin_pull_t pull_config)功能:設(shè)置指定范圍內(nèi)的連續(xù)引腳為輸入方向

5、void nrf_gpio_pin_set(uint32_t pin_number)功能:驅(qū)動(dòng)指定的GPIO輸出高電平

6、void nrf_gpio_pin_clear(uint32_t pin_number)功能:驅(qū)動(dòng)指定的GPIO輸出低電平

7、void nrf_gpio_pin_toggle(uint32_t pin_number)功能:翻轉(zhuǎn)指定的GPIO輸出狀態(tài)

8、uint32_t nrf_gpio_pin_read(uint32_t pin_number)功能:讀取指定引腳的電平狀態(tài),0代表低電平,1代表高電平

9、uint32_t nrf_gpio_port_in_read(NRF_GPIO_Type const * p_reg)功能:讀取端口所有的GPIO的狀態(tài)

三、程序示例

1、 點(diǎn)亮LED:

void LED_Init(void)

{  // 輸出   

nrf_gpio_cfg_output(LED_0);     

nrf_gpio_cfg_output(LED_1);   

nrf_gpio_cfg_output(LED_2); 

  nrf_gpio_cfg_output(LED_3);

}

void LED1_Open(void)

{   

nrf_gpio_pin_set(LED_0);

}

void LED1_Close(void)

{   

nrf_gpio_pin_clear(LED_0);

}

void LED1_Toggle(void)

nrf_gpio_pin_toggle(LED_0);

}

2、按鍵檢測(cè):

void KEY_Init(void)

{   

nrf_gpio_cfg_input(KEY1,NRF_GPIO_PIN_PULLUP);

nrf_gpio_cfg_input(KEY2,NRF_GPIO_PIN_PULLUP);

}

uint8_t KEY_Scan(void)

{   

if(nrf_gpio_pin_read(KEY1) == 0)       

{       

nrf_delay_ms(10);   

if(nrf_gpio_pin_read(KEY1) == 0)   

{     

  while(nrf_gpio_pin_read(KEY1) == 0);  //檢測(cè)按鍵是否釋放     

  return KEY1_OK;   

}   

else     

  return 0;       

}   

else       

return 0;   

 return 0;

}

全部回復(fù)(0)
正序查看
倒序查看
現(xiàn)在還沒有回復(fù)呢,說說你的想法
發(fā)
主站蜘蛛池模板: 望城县| 武乡县| 岳阳县| 光山县| 奉节县| 资阳市| 巴林左旗| 金寨县| 沙洋县| 古丈县| 武冈市| 新龙县| 垦利县| 祁门县| 伽师县| 察隅县| 台山市| 肃宁县| 正宁县| 淮阳县| 珠海市| 深水埗区| 成武县| 股票| 盘山县| 建瓯市| 醴陵市| 云和县| 南陵县| 靖远县| 巴马| 文水县| 吐鲁番市| 定襄县| 灵台县| 峨眉山市| 唐山市| 克山县| 五大连池市| 铜陵市| 马公市|