日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPIO

發布時間:2023/12/31 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPIO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.GPIO接口

1)PIN的含義

2)數據結構

3)管腳配置

4)中斷配置

5)喚醒配置

2.MH1902T平臺

1.GPIO接口

1)PIN的含義

在代碼中,以GPIO_PIN_PTA0為例,說明下代表的含義:

1.GPIO_PIN_PTA0表示PIN;

2.A表示TYPE;

3.0表示PORT;

2)數據結構

gpio_config_t結構體的定義如下所示:

typedef struct _gpio_config {m_pin;m_mux;m_pad;GPIO_DIR_T m_dir;u32 m_value; }gpio_config_t;typedef enum _GPIO_DIR {GPIO_DIR_OUTPUT=0,GPIO_DIR_INPUT }GPIO_DIR_T;

3)管腳配置

1、設置復用功能

s32 gpio_config_mux(pin_name, pin_cfg)

2、設置上拉功能

s32 gpio_set_pad(pin_name, config)

3、設置輸出功能,并賦初值

s32 gpio_dir_output(pin_name, u32 value)

4、設置輸入功能

s32 gpio_dir_input(pin_name)

5、GPIO簡化設置接口

此接口是以上1-4接口的合并,可以簡化代碼。

s32 gpio_config(gpio_config_t config) {if(GPIO_PIN_NONE == config.m_pin){return DEVSTATUS_ERR_PARAM_ERR;}gpio_config_mux(config.m_pin, config.m_mux);gpio_set_pad(config.m_pin, config.m_pad);if(MUX_CONFIG_GPIO == config.m_mux){if(GPIO_DIR_INPUT == config.m_dir) { gpio_dir_input(config.m_pin);}else { gpio_dir_output(config.m_pin, config.m_value);}}return DEVSTATUS_SUCCESS; }

6、設置輸出值

s32 gpio_set_value(pin_name, u32 value)

7、獲取輸入值

s32 gpio_get_value(pin_name)

4)中斷配置

1、申請中斷

s32 gpio_irq_request(pin, void (*handler)(void* ), u32 flags, void *data)

2、使能中斷

void gpio_irq_enable(pin)

3、禁止中斷

void gpio_irq_disable(pin)

4、清除中斷標志位

void gpio_irq_clean(pin)

5、釋放中斷

s32 gpio_irq_free(pin)

5)喚醒配置

s32 gpio_wakeup_ctl(pin, u8 flg)

2.MH1902T平臺

1)每組GPIO包含4個32位寄存器

1、數據寄存器(Px_IODR)

1)Px_IODR高16位作為輸入寄存器(Px_IDR)(只讀);

2)Px_IODR低16位作為輸出寄存器(Px_ODR)(讀寫);

2、置位/復位寄存器(Px_BSRR)

Px_BSRR高16位作為reset寄存器低16位作為set寄存器

3、方向寄存器(Px_OEN)

1:輸入? ??0:輸出

4、上拉電阻使能寄存器(Px_PUE)

1:上拉使能? ??0:上拉禁能

2)每個PIN可以配置為多種工作方式

1、輸入模式(輸入高阻、輸入上拉)

輸入高阻:既不是高電平也不是低電平,如果用萬用表測的話有可能是高電平也可能是低電平,隨

它后面接的東西定的。

2、開漏輸出

開漏輸出最主要的特性就是高電平沒有驅動能力,需要借助外部上拉電阻才能真正輸出高電平

開漏輸出的這一特性一個明顯的優勢就是可以很方便的調節輸出的電平,因為輸出電平完全

由上拉電阻連接的電源電平決定。

3、推挽輸出

推挽輸出的最大特點是可以真正的輸出高電平和低電平,在兩種電平下都具有驅動能力

可以配置的工作模式如下圖所示:

3)所有PIN復位后默認狀態為上拉輸入

電阻值51KΩ

4)所有PIN均支持超低功耗喚醒

GPIO僅支持低電平喚醒,可通過WKUP_PL_EN、WKUP_PH_EN寄存器配置IO喚醒源。

1、超低功耗喚醒源使能(WKUP_PL_EN)

1)每一位表示一個PIN,WKUP_PL_EN寄存器包含PA、PB的設置;

2)1:喚醒使能? ? 0:不喚醒使能

2、超低功耗喚醒源使能(WKUP_PH_EN)

1)每一位表示一個PIN,WKUP_PH_EN寄存器包含PC、PD的設置;

2)1:喚醒使能? ? 0:不喚醒使能

3、超低功耗喚醒類型控制寄存器(WKUP_TYPE_EN)

1)一般設置成0x00001001,表示使能GPIO、RTC的喚醒功能;

5)中斷相關寄存器

1、中斷類型控制寄存器(Px_INTP_TYPE)

1)2位描述1個PIN的中斷類型;

2)00:不產生中斷? ? 01:上升沿中斷? ? 10:下降沿中斷? ? 11:雙沿中斷

2、中斷狀態寄存器(Px_INTP_STA)

1)低16位有效;

2)對應的bit位為1代表產生中斷,否則代表無中斷。中斷標志置位后保持,直到向對應bit寫1,中

斷標志清除

總結

以上是生活随笔為你收集整理的GPIO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。