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脚进行配置,