【极海APM32M3514电机通用评估板】 GPIO输入与输出
[复制链接]
搭建环境,测试开发板的GPIO输入与输出,波动K2开关,D7闪烁或关闭。
一、资料下载
极海官网资料下载地址:https://www.geehy.com/design/hardware_detail/77
SDK下载链接:https://www.geehy.com/uploads/tool/APM32M35xx_SDK_V1.0.0.zip
二、硬件部分
测试用到开发板上的D7指示灯和K2开关。
对应MCU端口
三、程序部分
3.1、led.c
#include "main.h"
void init_led(void)
{
GPIO_Config_T gpioConfig;
RCM_EnableAHBPeriphClock(LED_GPIO_CLK);
gpioConfig.pin = LED_PIN;
gpioConfig.mode = GPIO_MODE_OUT;
gpioConfig.outtype = GPIO_OUT_TYPE_PP;
gpioConfig.speed = GPIO_SPEED_50MHz;
gpioConfig.pupd = GPIO_PUPD_NO;
GPIO_Config(LED_GPIO_PORT, &gpioConfig);
}
3.2、led.h
#ifndef _LED_H
#define _LED_H
#define LED_GPIO_CLK RCM_AHB_PERIPH_GPIOA
#define LED_GPIO_PORT GPIOA
#define LED_PIN GPIO_PIN_12
#define led_on() GPIO_ClearBit(LED_GPIO_PORT, LED_PIN)
#define led_off() GPIO_SetBit(LED_GPIO_PORT, LED_PIN)
void init_led(void);
#endif
3.3、mian.c
#include "main.h"
void init_swdir(void)
{
GPIO_Config_T gpioConfig;
RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOC);
gpioConfig.pin = GPIO_PIN_13;
gpioConfig.mode = GPIO_MODE_IN;
gpioConfig.pupd = GPIO_PUPD_PU;
GPIO_Config(GPIOC, &gpioConfig);
}
int main(void)
{
APM_DelayInit();
init_swdir();
init_led();
while (1)
{
if(GPIO_ReadInputBit(GPIOC, GPIO_PIN_13) == 0)
{
led_on();
APM_DelayMs(200);
led_off();
APM_DelayMs(200);
}
else
{
led_off();
}
}
}
3.4、mian.h
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes */
#include "Board.h"
#include "apm32m35xx.h"
#include "bsp_delay.h"
#include "apm32m35xx_rcm.h"
#include "apm32m35xx_gpio.h"
#include "apm32m35xx_misc.h"
#include <stdio.h>
#include <string.h>
#include "led/led.h"
#ifdef __cplusplus
}
#endif
#endif
四、运行结果
下载程序后,复位开发板运行,波动开关K2,D7闪烁和熄灭
gpio
|