工具/软件:TI-RTOS
我尝试设置三个 GPIO 引脚。 根据 CCS8中包含的一些示例的结构、我能够使用 PA2和 PA3成功地获得两个输入。 我的第三个输入是从单独的端口基址 PD0运行的。 我已验证我正在使用的硬件开关是否正确发送到引脚 PD0。 我怀疑这个问题与端口 D 具有 ADC 有关、但我不确定。 我知道 PD[7]以及 PC[3:0]和 PE[7]已锁定、但我认为这不会影响我使用 PD0的能力。
/*
================================================ GPIO ===========================================
将*/
/*置于子段中、以便 TI 链接器正确删除项目*/
#if defined (__TI_Compiler_version__)
#pragma DATA_SECTION (GPIOTIVA_config、".const:GPIOTiva_config")
#endif
#include
#include
/*
*引脚配置数组
*注意:引脚配置的顺序必须与
EK_TM4C129EXL.h 中*定义的顺序一致
*注意:不用于中断
的引脚应放置在*数组的末尾。 回调数组中可以省略回调条目
以*减少内存使用。
*/
GPIO_PinConfig gpioConfigs[]={
//*输入引脚*/
* EK_TM4C129EXL_USR_INP1 */
GPIOTVA_PA_2 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_INT_RISING、
* EK_TM4C129EXL_USR_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_INTRIP_ING_ING_INT_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_ING_INT_ING_ING_ING_ING_ING_ING_ING_INTRIP_ING_ING_ING_IN
/* EK_TM4C129EXL_USR_D2 */
GPIOTIVA_PN_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW
};
/*
回调函数指针数组
*注意:引脚配置的顺序必须与
*在 EK_TM4C129EXL.h 中定义的顺序一致
*注意: 不用于中断的引脚可从回调数组中省略、
以*减少存储器使用量(如果放置在 gpioPinConfigs 数组的末尾)。
*/
GPIO_CallbackFxn gpioCallbackFunctions[]={
NULL,/* EK_TM4C129EXL_USR_IMP1 */
NULL,/* EK_TM4C129EXL_USR_IMP2 */
NULL //端口 D0上的光测试 GPIO
};
/*特定于器件的 GPIO_CONFIG 结构*/
const GPIOTIVA_Config GPIOTIVA_CONFIG ={
.pinConfigs =(GPIO_PinConfig *) gpioPinConfigs、
.callback =(GPIO_CallbackFxn *) gpioCallbackFuncions、
.numberOfPinConfigs =(gpinsizeof)=
~
(gpinback=)/numerCallback=(gpinback=)= gpinvoltagioCallsizeds=(gpines=)/gpines=(gpinecn=)、gpinsize=)=(gpinback=)/n= gpinsizeof (gpinecn=)/n= gpinback= gpinsize=
EK_TM4C129EXL_initGPIO ===
/void
EK_TM4C129EXL_initGPIO (void)
{
GPIO_init();
}
从板头文件中删除了位
typedef enum EK_TM4C129EXL_GPIOName{ EK_TM4C129EXL_USR_IMP1 = 0、 EK_TM4C129EXL_USR_IMP2、 EK_TM4C129EXL_GPIO_D0、 EK_TM4C129EXL_D1、EK_TM4C129EXL_D1、 EK_TM4C129EXL_REX2_EXD2、EK-EXL_EXL EK_TM4C129EXL_GPIOCOUNT }EK_TM4C129EXL_GPIOName;
最后是主函数中我处理创建中断并将其绑定到函数的部分
GPIO_setCallback (EK_TM4C129EXL_USR_IMP1、gpioButtonFxn0); GPIO_enableInt (EK_TM4C129EXL_USR_IMP1); GPIO_CallsetBack (EK_TM4C129EXL_USR_IMP2、gpioButtonFxn1); GPIO_enableInt (EK_TM4C129EXL_USR_IMP2); GPIO_setCallback (EK_TM4C129EXL_GPIO_D0、gpioButtonFxn2); GPIO_enableInt (EK_TM4C129EXL_GPIO_D0);