主题中讨论的其他器件: SysConfig
工具与软件:
我将把适用于 Kentec 的 GRLib 从 MSP432Pr01R 移植到 MSPM0G3507
我知道大多数设置需要在 syscfg 中进行、所以这不是问题。 但是,要读取触摸屏,程序会像这样经过 gyratio :
/* Set X+ and X- as output and Y- as input (floating). */ MAP_GPIO_setAsOutputPin(TOUCH_X_PLUS_PORT, TOUCH_X_PLUS_PIN); MAP_GPIO_setAsOutputPin(TOUCH_X_MINUS_PORT, TOUCH_X_MINUS_PIN); MAP_GPIO_setAsInputPin(TOUCH_Y_MINUS_PORT, TOUCH_Y_MINUS_PIN); /* Set X+ high and X- low. */ MAP_GPIO_setOutputHighOnPin(TOUCH_X_PLUS_PORT, TOUCH_X_PLUS_PIN); MAP_GPIO_setOutputLowOnPin(TOUCH_X_MINUS_PORT, TOUCH_X_MINUS_PIN); /* Sample the Y+ ADC channel. */ MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(TOUCH_Y_PLUS_PORT, TOUCH_Y_PLUS_PIN, GPIO_TERTIARY_MODULE_FUNCTION); MAP_ADC14_clearInterruptFlag(TOUCH_X_PLUS_IFG | TOUCH_Y_PLUS_IFG); MAP_ADC14_disableConversion(); MAP_ADC14_configureSingleSampleMode(TOUCH_Y_PLUS_MEMORY, false); MAP_ADC14_enableConversion(); for(i = 0; i < TOUCH_OVERSAMPLE; i++) { MAP_ADC14_toggleConversionTrigger(); status = MAP_ADC14_getInterruptStatus(); while(status != TOUCH_Y_PLUS_IFG) { status = MAP_ADC14_getInterruptStatus(); } average += ADC14->MEM[0]; } /* Return the analog result. */ average = (average >> TOUCH_AVERAGE_DIVISOR); return(average);
测量 Y 的值相同、在 Y 引脚上施加电压、然后测量 X 引脚。
我应该做同样的事情吗? 如果我尝试在设置 GPIO 引脚的同时设置 GPIO 引脚、是否会发生设置冲突?