您好!
我需要引脚驱动程序、所以我在源文件和头文件中包含引脚 ID 和引脚配置表。 我需要在驱动程序文件中配置引脚。 我将 board.c 文件中的 BoardGpioInitTable 复制到我的驱动程序文件中、并在该表中分配引脚。 但是、 由于映射的外设引脚如 SPI、我无法初始化某些外设。 每当我注释掉驱动程序文件表中的引脚时、我就可以成功初始化外设。 为了解决这个问题、我尝试在 BoardGpioInitTable 中注释掉外设引脚、或者使用 CC1310_LAUNCHXL_initGeneral 内 PIN_init 函数内驱动程序文件中 的表、但它不起作用。 对于 GPIO 引脚、我没有问题、但是需要映射引脚的外设会产生问题。 我应该如何解决这个问题?
下面是我用于配置引脚的代码片段;
static PIN_Handle g_pinHandle;
static PIN_State g_pinState;
PIN_Config pinConfigTable[] =
{
LED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,
UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
SPI_CAN_INT | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,
SPI_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,
SPI_MISO | PIN_INPUT_EN | PIN_PULLDOWN,
SPI_CLK | PIN_INPUT_EN | PIN_PULLDOWN,
AGD4612_PIN_INPUT_1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
AGD4612_PIN_INPUT_2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
AGD4612_PIN_INPUT_3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
AGD4612_PIN_INPUT_4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
TMP_SENSOR_PIN_1 | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,
TMP_SENSOR_PIN_2 | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,
FIVE_VOLT_ENABLE | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,
LOAD_RESISTOR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MIN,
SPI_CAN_CSN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,
VBAT_SIGNAL | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,
BAT_ID_SIGNAL | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,
CHARGER_SHDN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,
PIN_TERMINATE
};
void Pin_init(void)
{
g_pinHandle = PIN_open(&g_pinState, pinConfigTable);
if (g_pinHandle == NULL)
{
while (1)
;
}
}
这是 BoardGpioInitTable 的确切副本, 具有不同的名称和位置。 只有当我从 my 表"pinConfigTable"中注释掉外设引脚时、该程序才起作用