注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
lenxvp的个人空间 https://home.eeworld.com.cn/space-uid-625160.html [收藏] [复制] [分享] [RSS]
日志

【AG32VF407测评】GPIO映射规则与灵活的IO复用

已有 871 次阅读2023-7-31 20:04 |个人分类:AG32VF

一、GPIO的映射规则

 

在文档AG32驱动的使用.pdf中GPIO 的使用里面已经比较详细介绍了GPIO的映射规则,但刚开始看总感觉云里雾里的,我这里大概总结一下

首先在SDK中使用的GPIO引脚是GPIOx_y的格式,但由于这板子直接套用了STM32F407的原理,在原理图里我们看到的是类似PA7这样的格式,这里就需要有个对应规则,将原理图中PA7这样的引脚对应到SDK中的GPIOx_y,这里面GPIOx_y是我们在ve文件中将其映射到PIN_z格式的引脚,例如

GPIO4_4 PIN_32 # LED4

ve文件是芯片配置硬件IO映射的重要文件,也是下面要讲到IO复用的基础

在这里PIN_z中的z在原理图跟芯片引脚旁的数字是一一对应的,即芯片封装引脚旁的黑色小数字

 

据此,我们要使用某一指定的IO引脚,先从原理图找到对应引脚。例如LED的PA7,然后找到芯片旁边引脚对应的黑色数字作为PIN_z中的z,例如PA7对应的是32,所以为PIN_32

 

之后在ve文件中映射GPIOx_y和PIN_z,这里GPIOx_y可以是任何一个没有使用到的符号,但需要满足0 <= x <= 9,0 <= y <= 7

 

最后就可以使用这里的GPIO4_4作为LED的控制GPIO在SDK中使用了

 

二、基于ve文件IO灵活复用

在上边我们提到在ve文件进行引脚的映射,这里边的映射是有很大灵活性的,每个GPIOx_y都可以跟任意一个不受限制的PIN_z上,部分限制参考AGM32_pinout_100_64_48.xlsx,这比STM32上的IO复用要更加灵活,且配置更加简单,只需要在ve文件进行映射即可

IO复用的好处在于当硬件上的IO配置发生改变时,我们可以只修改IO映射而基本不用动主程序,特别对于“话语权”较弱的软件工程师和强势的硬件工程师之间,在没有协商的情况下,硬件工程师擅自修改了引脚配置且软件配置不方便的时候,IO复用将会是软件工程师的一大利器

 

下面通过一个示例展示下,示例中将一个LED和一个串口配置到了不同的引脚上

在之前的帖子【AG32VF407测评】串口logger配置 中我们做了一个串口logger的demo,该demo基于【AG32VF407测评】开箱、环境搭建与点灯Demo ,具体建立demo工程的步骤可以参考这两篇帖子,不再赘述

demo中的ve文件如下

SYSCLK 240

HSECLK 8

UART0_UARTRXD PIN_69 # PA10
UART0_UARTTXD PIN_68 # PA9

GPIO4_4 PIN_31 # LED4

我们重新映射UART0_UARTRXD和UART0_UARTTXD、GPIO4_4到不同的引脚上,例如

SYSCLK 240

HSECLK 8

UART0_UARTRXD PIN_52 # PB13
UART0_UARTTXD PIN_53 # PB14

GPIO4_4 PIN_32 # LED4

编译后只需要重新下载ve配置即可而不需要下载程序,即使用下面的Upload LOGIC或者终端中使用命令pio run -e release -t upload

 

下载完成后可以看到开发板LED从D2闪烁变成D3闪烁,串口从原来的PA9/PA10变成了PB13/PB14,这里我们甚至都不用改变主程序的代码也不用重新下载主程序

785234202

感兴趣可以自己多修改几组引脚尝试一下,只要是AGM32_pinout_100_64_48.xlsx中Function为IO的都是可复用的引脚

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章