CC3235SF的開發板上,使用GPIO23當作輸出(TDI Jumper有移除),高低態切換,發現此GPIO沒有動作,
將GPIO23改成輸入,仍然讀不到任何高低態變化….
CC3200也是可以使用的!!
其它GPIO是可以控制得,想請問這是怎麼回事?
Viki Shi:
GPIO23是TDI,是不是用于JTAG了?
All GPIO pins default to high impedance unless programmed by the MCU. The bootloader sets the TDI, TDO, TCK, TMS, and Flash_SPI pins to mode 1. All the other pins are left in the Hi-Z state.
CheWei Chang:
回复 Viki Shi:
在Application 有重新設定GPIO pin mode 0,也有將板子上連接TDI的Jumper也移除,但是也都沒有任何變化….
Viki Shi:
回复 CheWei Chang:
请问用的是TI开发板吗?
CheWei Chang:
回复 Viki Shi:
是的
LAUNCHCC3235MOD
Viki Shi:
回复 CheWei Chang:
把jtag引脚用作普通IO的操作步骤如下:
disconnect TDI, TDO jumpers at J3
set proper SOP mode 0-0-1 (2-1-0)
make sure that device is set into development mode by Uniflash (for Uniflash you need to use mode 1-0-0)
change TI driver configuration to mux. GPIO_23 and GPIO_24 (alternately driverlib may to be used for this job)
CheWei Chang:
回复 Viki Shi:
使用CC3235 GPIO_PinConfig gpioPinConfigs[ ]的方式是可以讀到變化的。
當使用從CC3200設定的方式卻不行,想請問是還差了甚麼嗎?TDI跟TDO都無法
代碼如下:
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK|PRCM_SLP_MODE_CLK);//GPIOA2 enable MAP_PRCMPeripheralClkEnable(PRCM_GPIOA3, PRCM_RUN_MODE_CLK|PRCM_SLP_MODE_CLK);//GPIOA3 enable
// Configure PIN_16 for GPIOInput(GPIO23) MAP_PinModeSet(PIN_16, PIN_MODE_0); MAP_PinTypeGPIO(PIN_16, PIN_MODE_0, false); MAP_GPIODirModeSet(GPIOA2_BASE, 0x80, GPIO_DIR_MODE_IN);
// Configure PIN_17 for GPIOInput(GPIO24) MAP_PinModeSet(PIN_17, PIN_MODE_0); MAP_PinTypeGPIO(PIN_17, PIN_MODE_0, false); MAP_GPIODirModeSet(GPIOA3_BASE, 0x01, GPIO_DIR_MODE_IN);
unsigned int uiPort;
unsigned char ucPin;
while(1)
{ MAP_UtilsDelay(20000000); GPIO_IF_GetPortNPin(GPIO23,&uiPort,&ucPin); UART_PRINT("GPIO23= %d \r\n",MAP_GPIOPinRead(uiPort,ucPin)); MAP_UtilsDelay(20000000); GPIO_IF_GetPortNPin(GPIO24,&uiPort,&ucPin); UART_PRINT("GPIO24= %d \r\n",MAP_GPIOPinRead(uiPort,ucPin));
}