Thread 中讨论的其他器件:SysConfig
工具/软件:Starterware
您好!
我有 IDK-AM437x 开发套件、并尝试将 J16连接器上的 SPI 与一些 GPIO 配合使用。
作为基础、我使用 PDK 项目"MCSPI_BasicExample_idkAM437xarmTestProject"。
我想在 J16连接器上启用一些 GPIO、并将其用于扩展 SPI 功能。 因此、我在以下文件中添加了以下内容:
为了检查是否有任何工作正常、我为板上的两个 RGB LED 添加了引脚多路复用器。
文件:"spi_idkAM437x_board.c"
#include
#include
#include
GPIO 负载引脚的/*端口和引脚编号屏蔽。
位7-0:引脚编号和位15-8:(端口号+ 1)*/
#define AM437X_IDK_GPIO_LD_PIN (0x0401)
/* LED 0 */
#define GPIO_LED0_RED_PIN_NUM (0x18)//P2.24 A22
#define GPIO_LED0_RED_PORT_NUM (0x02)//P2.24 A22
#define GPIO_LED0_GREE_PIN_NUM (0x19)//P2.25 A24
#define GPIO_LED0_GREEN _PORT_NUM (0x02)//P2.25 A24
#define GPIO_LED0_Yellow PIN_NUM (0x16)//P2.22 B23
#define GPIO_LED0_Yellow _PORT_NUM (0x02)//P2.22 B23
/* LED 1 */
#define GPIO_LED1_RED_PIN_NUM (0x17)//P2.23 A23
#define GPIO_LED1_RED_PORT_NUM (0x02)//P2.23 A23
#define GPIO_LED1_GREEN PIN_NUM (0x0D)//P4.13 AB25
#define GPIO_LED1_GREEN _PORT_NUM (0x04)//P4.13 AB25
#define GPIO_LED1_YEL_PIN_NUM (0x10)//P4.16 AD21
#define GPIO_LED1_YELY_PORT_NUM (0x04)//P4.16 AD21
#define GPIO_USER_1_PIN_NUM (0x11)//P4.17 AE21
#define GPIO_USER_1_PORT_NUM (0x04)//P4.17 AE21
#define GPIO_USER_2_PIN_NUM (0x13)//P4.19 AE23
#define GPIO_USER_2_PORT_NUM (0x04)//P4.19 AE23
#define GPIO_USER_3_PIN_NUM (0x15)//P4.21 AE24
#define GPIO_USER_3_PORT_NUM (0x04)//P4.21 AE24
/* GPIO 驱动器板特定引脚配置结构*/
GPIO_PinConfig gpioPinConfigs[]={
/*输出引脚:AM437X_IDK_LD_PIN */
AM437X_IDK_GPIO_LD_PIN | GPIO_CFG_OUTPUT、
/*输出引脚 LED0红色 P2.24*/
GPIO_DEVICE_CONFIG ((GPIO_LED0_RED_PORT_NUM + 1)、GPIO_LED0_RED_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚 LED0绿色 P2.25*/
GPIO_DEVICE_CONFIG ((GPIO_LED0_GREEN _PORT_NUM + 1)、GPIO_LED0_GREEN PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚 LED0黄色 P2.22*/
GPIO_DEVICE_CONFIG ((GPIO_LED0_YEL_PORT_NUM + 1)、GPIO_LED0_YEL_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚 LED1红色 P2.23*/
GPIO_DEVICE_CONFIG ((GPIO_LED1_RED_PORT_NUM + 1)、GPIO_LED1_RED_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚 LED1绿色 P4.13 */
GPIO_DEVICE_CONFIG ((GPIO_LED1_GREEN _PORT_NUM + 1)、GPIO_LED1_GREEN PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚 LED1黄色 P4.16*/
GPIO_DEVICE_CONFIG ((GPIO_LED1_YEL_PORT_NUM + 1)、GPIO_LED1_YEL_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚用户1 P4.17*/
GPIO_DEVICE_CONFIG ((GPIO_USER_1_PORT_NUM + 1)、GPIO_USER_1_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚用户2 P4.19*/
GPIO_DEVICE_CONFIG ((GPIO_USER_2_PORT_NUM + 1)、GPIO_USER_2_PIN_NUM)| GPIO_CFG_OUTPUT、
/*输出引脚用户3 P4.21*/
GPIO_DEVICE_CONFIG ((GPIO_USER_3_PORT_NUM + 1)、GPIO_USER_3_PIN_NUM)| GPIO_CFG_OUTPUT
};
在"main.cpp"中:
/*板载 LED 引脚、这些引脚连接到 GPIO 引脚。 *
typedef 枚举 GPIO_PIN{
GPIO_PIN_LD_PIN = 0U、
GPIO_PIN_LED0_RED、
GPIO_PIN_LED0_GREEN、
GPIO_PIN_LED0_Yellow、
GPIO_PIN_LED1_RED、
GPIO_PIN_LED1_GREEN、
GPIO_PIN_LED1_黄色、
GPIO_PIN_User1、
GPIO_PIN_User2、
GPIO_PIN_User3、
GPIO_PIN_COUNT
}GPIO_PIN;
要使用 GPIO (也是 LED):
GPIO_init();
GPIO_WRITE (GPIO_PIN_LED0_RED、GPIO_PIN_VAL_LOW);
GPIO_WRITE (GPIO_PIN_LED0_GREEN、GPIO_PIN_VAL_LOW);
GPIO_WRITE (GPIO_PIN_LED0_Yellow、GPIO_PIN_VAL_LOW);
//关闭所有 LED - LED 1
GPIO_WRITE (GPIO_PIN_LED1_RED、GPIO_PIN_VAL_LOW);
GPIO_WRITE (GPIO_PIN_LED1_GREEN、GPIO_PIN_VAL_LOW);
GPIO_WRITE (GPIO_PIN_LED1_Yellow、GPIO_PIN_VAL_LOW);
GPIO_WRITE (GPIO_PIN_User1、GPIO_PIN_VAL_HIGH);
GPIO_WRITE (GPIO_PIN_User2、GPIO_PIN_VAL_HIGH);
GPIO_WRITE (GPIO_PIN_User3、GPIO_PIN_VAL_HIGH);
LED 工作正常、只有其他3个 GPIO (用户1、2、3)不工作。
我是否还必须更改另一个文件上的 pinmux?
请注意
Fkaiser
