概述
本章主要讲解GPIO输入检测。
硬件准备
这里准备了2块开发板进行验证,分别是GD32303C_START开发板。
样品申请
https://www.wjx.top/vm/wFGhGPF.aspx#
管脚配置
在GD32303C_START开发板中,按键的管脚为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管脚电平状态。
例如按下按键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的电平状态。 例如按下按键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()函数
读取输出管脚电平状态。
例如按下按键LED2亮,如果LED1是亮的,那么切换为灭的状态,如果为灭切换为亮状态。 设置断点查看会更加准确。
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管脚输出电平状态。
审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
函数
+关注
关注
3文章
4273浏览量
62292 -
GPIO
+关注
关注
16文章
1186浏览量
51795 -
固件库
+关注
关注
2文章
97浏览量
14915
发布评论请先 登录
相关推荐
STM32CUBEMX开发GD32F303(6)----GPIO输入函数说明
本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。
GD32F303固件库开发(1)----前期准备与烧录
在这使用STM32CUBEMX进行配置STM32F103,移植到兆易创新GD32F303,然后进行测试。需要样片的可以加Qun申请:615061293。
GD32F303固件库开发(3)----使用固件库点亮LED
概述 在GD的官网中有许多的DEMO文件,可以使用开发板的案例或者对应的MCU标准固件库。需要样片的可以加群申请:6_15061293。 下
STM32CUBEMX开发GD32F303(4)----GPIO输出模式,速率测试、开漏和输出说明
以STM32CUBEMX创建STM32F103工程,同时移植在GD32F303中,同时通过GD32303C_START开发板内进行验证。 需要样片的可以加Qun申请:615061293
GD32F303固件库开发(5)----GPIO输出模式,速率测试、开漏和输出说明
以STM32CUBEMX创建STM32F103工程,同时移植在GD32F303中,同时通过GD32303C_START开发板内进行验证。
STM32CUBEMX开发GD32F303(5)----GPIO输出函数说明
概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验
AN029 GD32F103程序在GD32F303和GD32F403芯片上运行DSP
AN029 GD32F103程序在GD32F303和GD32F403芯片上运行DSP
发表于 02-27 18:33
•0次下载
【GD32 MCU 移植教程】2、从 GD32F303 移植到 GD32F503
GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控
评论