Other Parts Discussed in Thread: ADS1292
器件型号:MSP432P401R
工具/软件:Code Composer Studio
我使用 MSP432的 GPIO p4.4直接连接到另一个芯片(ADS1292)的引脚。
MSP432 P4.4 设置为输入。 ADS1292引脚是输出引脚。
我的代码如下:
int main (void) { MAP_WDT_A_HOLDTimer(); MAP_GPIO_setAsOutputPin (GPIO_PORT_PA、PIN_ALL16); MAP_GPIO_setAsOutputPin (GPIO_PORT_PB、PIN_ALL16); MAP_GPIO_setAsOutputPin (GPIO_PORT_PC、PIN_ALL16); MAP_GPIO_setAsOutputPin (GPIO_PORT_PD、PIN_ALL16); MAP_GPIO_setAsOutputPin (GPIO_PORT_PE、PIN_ALL16); MAP_GPIO_setAsOutputPin (GPIO_PORT_PJ、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PA、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PB、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PC、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PD、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PE、PIN_ALL16); MAP_GPIO_setOutputLowOnPin (GPIO_PORT_PJ、PIN_ALL16);
MAP_PCM_setPowerMode (PCM_LDO_MODE);
MAP_PCM_setPowerState (PCM_AM_LDO_VCORE1);
MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);
MAP_FlashCtl_setWaitState (FLASH_BANK0、1);
MAP_FlashCtl_setWaitState (FLASH_BANK1、1);
//为 DCO 频率计算启用 FPU
map_fpu_enableModule();
//将 DCO 频率设置为标准48MHz
//初始化时钟系统
MAP_CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 48);
for (indConfgClk = 0;indConfgClk < 1000;indConfgClk ++);
MAP_CS_initClockSignal (CS_MCLK、CS_DCOCLK_SELECT、CS_CLOCK _DIVIDER_1);// MCLK = 48M
MAP_CS_initClockSignal (CS_SMCLK、CS_DCOCLK_SELECT、CS_Clock_divider _1);// SMCLK = 48M
P4->DIR &=~BIT4; P4->SEL0 &=~BIT4; P4->SEL1 &=~BIT4; MAP_PSS_disableHighSide(); MAP_PCM_enableRudeMode(); while (1) { MAP_PCM_gotoLPM3 (); } }
我使用电流表测量 MSP432在睡眠模式下的功耗。
当 ADS 输出引脚输出为高电平时、功耗非常大、达到每小时6mA。
,将 P4.4设置为输出引脚、则工作电流非常小、仅为几微安。
您能否告诉我、当 GPIO 设置为输入时、当外部输入为高电平时、工作电流为何如此大?
非常感谢!