CC3200将JTAG、SPI对应的接口复用成GPIO出现不能正常输出的问题
时间:10-02
整理:3721RD
点击:
CC3200将JTAG对应的接口复用成GPIO,怎么操作时没有响应呢,另外SPI接口也是复用成SPI,只有GPIO16具备输出功能,请高手给解答下,谢谢!
void GPIO_init()
{
/*****************************
0 8 16 24 32
LED2----GPIO29----PIN20------ GPIOA3--0x20 //状态指示灯接口
SOUND----GPIO28----PIN18 ------ GPIOA3--0x10 //语音芯片控制接口
ADD----GPIO24----PIN17 ------ GPIOA3--0x01 //加减签接口
LED1----GPIO23----PIN16 ------ GPIOA2--0x80 //盘存指示灯接口
PC----GPIO22----PIN15 ------ GPIOA2--0x40 //盘存按键接口
CLK----GPIO16----PIN7 ------ GPIOA2--0x01 //屏CLK接口
SCL----GPIO15----PIN6 ------ GPIOA1--0x80 //屏SCL接口
SDA----GPIO14----PIN5 ------ GPIOA1--0x40 //屏SDA接口
EN----GPIO08----PIN63 ------ GPIOA1--0x01 //读卡器使能管教
*********************************/
//输出
MAP_PinTypeGPIO(UPIN_LED2, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_LED2,UPIN_LED2, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_SOUND, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_SOUND,UPIN_SOUND, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_LED1, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_LED1,UPIN_LED1, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_CLK, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_CLK,UPIN_CLK, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_SCL, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_SCL,UPIN_SCL, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_SDA, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_SDA,UPIN_SDA, GPIO_DIR_MODE_OUT);
MAP_PinTypeGPIO(UPIN_EN, PIN_MODE_0, false);
MAP_GPIODirModeSet(PORT_EN,UPIN_EN, GPIO_DIR_MODE_OUT);
//输入中断配置
//加减按键
PinModeSet(UPIN_ADD,PIN_MODE_0);
PinConfigSet(UPIN_ADD,PIN_STRENGTH_2MA,PIN_TYPE_STD);
MAP_GPIODirModeSet(PORT_ADD,PIN_ADD, GPIO_DIR_MODE_IN);
GPIOIntTypeSet(PORT_ADD,UPIN_ADD,GPIO_FALLING_EDGE); //设置为下降沿
GPIOIntRegister(PORT_ADD,Key_Handle); //设置中断函数
GPIOIntEnable(PORT_ADD,GPIO_INT_ADD); //使能触发中断
//盘存按键
PinModeSet(UPIN_PC,PIN_MODE_0);
PinConfigSet(UPIN_PC,PIN_STRENGTH_2MA,PIN_TYPE_STD);
MAP_GPIODirModeSet(PORT_PC,PIN_PC, GPIO_DIR_MODE_IN);
GPIOIntTypeSet(PORT_PC,UPIN_PC,GPIO_FALLING_EDGE); //设置为下降沿
GPIOIntRegister(PORT_PC,Key_Handle); //设置中断函数
GPIOIntEnable(PORT_PC,GPIO_INT_PC); //使能触发中断
Sound_DATA_H();
}
//声音模块
void Sound_DATA_H() { GPIO_IF_Set(GPIOPIN_SOUND,PORT_SOUND,PIN_SOUND,1); }
void Sound_DATA_L() { GPIO_IF_Set(GPIOPIN_SOUND,PORT_SOUND,PIN_SOUND,0); }
//UHF待机开关
void UHF_ON() { GPIO_IF_Set(GPIOPIN_EN,PORT_EN,PIN_EN,1); }
void UHF_OFF() { GPIO_IF_Set(GPIOPIN_EN,PORT_EN,PIN_EN,0); }
//盘存指示灯
void PC_LED_ON() { GPIO_IF_Set(GPIOPIN_LED1,PORT_LED1,PIN_LED1,0); }
void PC_LED_OFF() { GPIO_IF_Set(GPIOPIN_LED1,PORT_LED1,PIN_LED1,1); }
//状态指示灯
void Led_on() { GPIO_IF_Set(GPIOPIN_LED2,PORT_LED2,PIN_LED2,0); }
void Led_off() { GPIO_IF_Set(GPIOPIN_LED2,PORT_LED2,PIN_LED2,1); }
//显示屏驱动
void CLK_H() { GPIO_IF_Set(GPIOPIN_CLK,PORT_CLK,PIN_CLK,1); }
void CLK_L() { GPIO_IF_Set(GPIOPIN_CLK,PORT_CLK,PIN_CLK,0); }
void SCL_H() { GPIO_IF_Set(GPIOPIN_SCL,PORT_SCL,PIN_SCL,1); }
void SCL_L() { GPIO_IF_Set(GPIOPIN_SCL,PORT_SCL,PIN_SCL,0); }
void SDA_H() { GPIO_IF_Set(GPIOPIN_SDA,PORT_SDA,PIN_SDA,1); }
void SDA_L() { GPIO_IF_Set(GPIOPIN_SDA,PORT_SDA,PIN_SDA,0); }
建议参考示例example的源码。
板级初始化会进行接口的初始化。
可以使用TI Pin Mux Tool 工具对CC3200的PIN脚进行配置,
