目录
概述
本文主要是使用AT32F403A开发板,基于V2库的实现按键输入功能。
工程建立、调试工具配置在前面章节有详细介绍。
Gpio的操作使用库函数、位带操作。
硬件
硬件方面使用的是参考官方AT32F437 SURF板子而设计的一个AT32F403A开发板,板子上的芯片是AT32F403AVGT7的型号,开发板上面还板载了一个atlink-ez的仿真器,atlink-ez除了可以在线仿真和下载之外还有一个串口的功能,硬件上是通过跳线帽接到了MCU的串口1,pa9/10上面。
如下图是开发板pcb图,以及硬件资源。(左边上角的就是atlink-ez,用usb线接到pc即可):
如下是实物图:
本章的主要内容是使用板子上面的按键key1,key2,相关原理图部分如下:
软件
项目的建立是基于上一章建立的工程步骤,然后再添加一个key.c文件用于放key的相关代码。
通过上面的AT32F403A开发板原理图的按键部分可以知道,开发板上的两个输入按键,一个是PA0,另一个是PC13。
初始化gpio
软件上首先需要初始化PA0,PC13的gpio,设置为输入下拉模式 :
相关代码:
库函数操作
通过flag_status gpio_input_data_bit_read(gpio_type *gpio_x, uint16_t pins)函数来读取PA0、PC13的值,当为高电平的时候,则有按键按下。
相关代码:
位带操作
设置宏定义:
#define KEY0 PAin(0)
#define KEY1 PCin(13)
当KEY1或者KEY0的值为1,也就是PA0或者PC13为高电平的时候,则是有按键按下。
相关代码:
测试结果:
把代码下载到开发板后,按开发板上的Key1或者Key2按键,RGB_LED(左下角)会显示红色并且按一次翻转一次,测试通过。
最后
有问题的可以加QQ群技术交流,同时相关代码上传到qq群中。