概述
本章主要講解GPIO輸入檢測。
硬件準備
這里準備了2塊開發(fā)板進行驗證,分別是GD32303C_START開發(fā)板。
樣品申請
https://www.wjx.top/vm/wFGhGPF.aspx#
管腳配置
在GD32303C_START開發(fā)板中,按鍵的管腳為PA0。
LED管腳如下所示。
對GPIO管腳進行初始化配置。
/* 使能GPIOB時鐘*/
rcu_periph_clock_enable(RCU_GPIOB);
/*設置PB14、PB15為推挽輸出 */
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
/* 設置PB14、PB15為輸出為0*/
gpio_bit_reset(GPIOB, GPIO_PIN_14);
gpio_bit_reset(GPIOB, GPIO_PIN_15);
/* 使能GPIOB時鐘*/
rcu_periph_clock_enable(RCU_GPIOA);
/*設置PA0為浮空輸入 */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
gpio_input_bit_get()函數
讀取指定的GPIO管腳電平狀態(tài)。
例如按下按鍵LED1滅LE2亮,松開按鍵LED1亮LE2滅。
while(1){
if(SET == gpio_input_bit_get(GPIOA, GPIO_PIN_0))//按下LED1滅LE2亮
{
gpio_bit_write(GPIOB, GPIO_PIN_15,SET);
gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);
}
else//松開LED1亮LE2滅
{
gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);
gpio_bit_write(GPIOB, GPIO_PIN_14,SET);
}
delay_1ms(10);
}
gpio_input_port_get()函數
讀取整個GPIO的電平狀態(tài)。 例如按下按鍵LED1滅LED2亮,松開按鍵LED1亮LE2滅。
while(1){
uint16_t get_gpioa_num = 0;
get_gpioa_num=gpio_input_port_get(GPIOA);
if(get_gpioa_num & 0x0001)//按下LED1滅LE2亮
{
gpio_bit_write(GPIOB, GPIO_PIN_15,SET);
gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);
}
else//松開LED1亮LE2滅
{
gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);
gpio_bit_write(GPIOB, GPIO_PIN_14,SET);
}
delay_1ms(10);
}
gpio_output_bit_get()函數
讀取輸出管腳電平狀態(tài)。
例如按下按鍵LED2亮,如果LED1是亮的,那么切換為滅的狀態(tài),如果為滅切換為亮狀態(tài)。 設置斷點查看會更加準確。
while(1){
uint16_t get_gpioa_num = 0;
get_gpioa_num=gpio_input_port_get(GPIOA);
if(get_gpioa_num & 0x0001)//按下LED1滅LE2亮
{
gpio_bit_write(GPIOB, GPIO_PIN_15,SET);
if(gpio_output_bit_get(GPIOB, GPIO_PIN_14)==SET)//如果燈亮,則燈滅
gpio_bit_write(GPIOB, GPIO_PIN_14,RESET);
else//如果燈滅,則燈亮
gpio_bit_write(GPIOB, GPIO_PIN_14,SET);
}
else//松開LED1亮LE2滅
{
gpio_bit_write(GPIOB, GPIO_PIN_15,RESET);
}
delay_1ms(10);
}
}
gpio_output_port_get()函數
讀取全部GPIO管腳輸出電平狀態(tài)。
審核編輯 黃昊宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4333瀏覽量
62720 -
GPIO
+關注
關注
16文章
1205瀏覽量
52162 -
固件庫
+關注
關注
2文章
97瀏覽量
14954
發(fā)布評論請先 登錄
相關推薦
STM32CUBEMX開發(fā)GD32F303(6)----GPIO輸入函數說明
本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發(fā),同時通過GD32303C_START開發(fā)板內進行驗證。
【GD32F303】星空派介紹
GD32官方資料的基礎上,提供GD32F303的庫函數開發(fā)資料、例程講解、視頻課程等。同時還提供RT-Thread相關的驅動開發(fā)、應用
發(fā)表于 09-11 17:55
GD32F303固件庫開發(fā)(1)----前期準備與燒錄
在這使用STM32CUBEMX進行配置STM32F103,移植到兆易創(chuàng)新GD32F303,然后進行測試。需要樣片的可以加Qun申請:615061293。
GD32F303固件庫開發(fā)(3)----使用固件庫點亮LED
概述 在GD的官網中有許多的DEMO文件,可以使用開發(fā)板的案例或者對應的MCU標準固件庫。需要樣片的可以加群申請:6_15061293。 下
STM32CUBEMX開發(fā)GD32F303(4)----GPIO輸出模式,速率測試、開漏和輸出說明
以STM32CUBEMX創(chuàng)建STM32F103工程,同時移植在GD32F303中,同時通過GD32303C_START開發(fā)板內進行驗證。 需要樣片的可以加Qun申請:615061293
GD32F303固件庫開發(fā)(5)----GPIO輸出模式,速率測試、開漏和輸出說明
以STM32CUBEMX創(chuàng)建STM32F103工程,同時移植在GD32F303中,同時通過GD32303C_START開發(fā)板內進行驗證。
STM32CUBEMX開發(fā)GD32F303(5)----GPIO輸出函數說明
概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發(fā),同時通過GD32303C_START開發(fā)板內進行驗
AN029 GD32F103程序在GD32F303和GD32F403芯片上運行DSP
AN029 GD32F103程序在GD32F303和GD32F403芯片上運行DSP
發(fā)表于 02-27 18:33
?0次下載
【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503
GD32E503 系列是 GD 推出的 Cortex_M33 系列產品,該系列資源上與 GD32F303 兼容度非常高,本應用筆記旨在幫助您快速將應用程序從 GD32F303 系列微控
評論