AG32+管脚配置及GPIO使用

管脚配置

但在AG32 里,信号线和管脚是彻底分离的,可以把任意信号线绑定到任意引脚(除部分管脚 基础类:电源、时钟、地、RESET、BOOT0、ADC(DAC/CMP)、USB)。下面是信号线和管脚的介绍:

  • 信号线:指MCU 里能操作的信号线,比如gpio1_1/uart0_tx/spi_cs 等等;
  • 管脚:芯片裸露在外边的引脚(32PIN 的有32 个管脚,64PIN 的有64 个管脚…)

详细的管脚的定义,可以参考文档《AG32_pinout_100_64_48_32_2K.xlsx》,其中带IO的均为可配置的管脚。

在AG32中,管脚在ve文件中配置,格式为信号线<->管脚,每个管脚的配置单独一行。如:

  1. 配置GPIO0_1 为PIN2,则定义:GPIO0_1 PIN_2
  2. 配置UART1_TX 为PIN3,则定义:UART1_UARTTXD PIN_3
  3. 配置SPI0 的clk 为PIN4,则定义:SPI0_SCK PIN_4
  4. 配置CAN0 的TX 为PIN5,则定义:CAN0_TX0 PIN_5

GPIO使用

GPIO简介

AG32中可用GPIO共80个,分为10组,每组8个。

其中各组分别为:GPIO0、GPIO1、GPIO2、…

组内各IO可表示为:GPIO_BIT0、GPIO_BIT1、GPIO_BIT2、…

使用时,用【组ID+组内id】来标识唯一的IO。

GPIO配置

管脚映射

在ve文件中对管脚映射进行配置,这里将GPIO4_1GPIO4_4分别映射到PIN_34PIN_31上,这四个管脚分别对应四个LED。

GPIO4_1 PIN_34 # LED1
GPIO4_2 PIN_33 # LED2
GPIO4_3 PIN_32 # LED3
GPIO4_4 PIN_31 # LED4

管脚配置

类似于STM32,首先定义相关的宏,这里的LED_GPIO_BITS仅选择了LED4进行操作。

#define LED_GPIO GPIO4
#define LED_GPIO_MASK APB_MASK_GPIO4
#define LED_GPIO_BITS (1 << 4) // LED 4

GPIO初始化

接下来进行GPIO的初始化。首先开启相关的时钟并将LED设置为输出模型并默认设置高电平。

SYS_EnableAPBClock(LED_GPIO_MASK);
  GPIO_SetOutput(LED_GPIO, LED_GPIO_BITS);
  GPIO_SetHigh(LED_GPIO, LED_GPIO_BITS);

GPIO操作

示例代码如下,这里是对GPIO的电平进行了翻转操作,从而实现LED4闪烁的效果。

void TestGpio()
{
  printf("Testing gpio\n");
  int counter = 0;
  while (1) {
    UTIL_IdleUs(100e3);
    GPIO_Toggle(LED_GPIO, LED_GPIO_BITS);
  }
}

其它还有其它相关函数,具体可以参考SDK中的相关代码:

  • GPIO_SetOutput/GPIO_SetInput —设置IO 为输入输出
  • GPIO_SetHigh/GPIO_SetLow —置高置低
  • GPIO_Toggle —高低切换
  • GPIO_IntConfig —配置中断触发方式
  • GPIO_EnableInt/GPIO_DisableInt/GPIO_ClearInt —中断控制
  • GPIO_AF_ENABLE/GPIO_AF_DISABLE —切换GPIO 模式(如果有复用)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxfeng~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值