Other Parts Discussed in Thread: CC3200
您好!
我在使用基于 CC3200的器件时遇到了一个奇怪的问题。 由于引脚短缺、我们使用两线制 SWD 接口进行板载调试、因此引脚16和17用于外部连接-当器件进入休眠模式时、引脚17被驱动为高电平。 我已经在 Launchpad 上检查过这一点、使用最少的固件对其进行刷写、这只会点亮 LED 并将电路板发送到休眠模式。 如果在闪存或4线制 JTAG 模式(100或000)中设置 SOP[2:0]跳线、则一切都如预期的那样-引脚17处于高阻态。 如果您为 SWD 模式(001)设置跳线、则重置电路板并进入休眠模式、引脚17将在休眠模式下驱动为高电平。 最小固件的代码如下(在 MCU 初始化和启动后立即将其放置在 main()中):
/*启用 GPIO */
MAP_PRCMPeripheralClkEnable (PRCM_GPIOA1、PRCM_RUN_MODE_CLK);
//为 GPIO13输入(PWR)配置 PIN_04 */
MAP_PinTypeGPIO (PIN_04、PIN_MODE_0、false);
MAP_PinConfigSet (PIN_04、PIN_Strength _6mA、 PIN_TYPE_STD_PD);
MAP_GPIODirModeSet (GPIOA1_BASE、0x20、GPIO_DIR_MODE_IN);
/*为 GPIO9输出配置 PIN_64 (红色 LED)*/
MAP_PinTypeGPIO (PIN_64、PIN_MODE_0、false);
MAP_GPIODirModeSet (GPIOA1_BASE、0x02、 GPIO_DIR_MODE_OUT);
/*打开红色 LED 指示灯*/
MAP_GPIOPinWrite (GPIOA1_BASE、0x02、0x02);
/*等待按钮被按下*/
while (!map_GPIOPinRead (GPIOA1_base、0x20)){}
/*去抖的小延迟*/
map_UtilsDelay (8000000);
/*关闭红色 LED */
MAP_GPIOPinWrite (GPIOA1_BASE、0x02、0x00);
//启用从 PWR 开关唤醒*/
PRCMHibernateWakeUpGPIOSelect (PRCM_HIB_GPIO13、PRCM_HIB_HIGH_LEVEL);
PRCMHibernateWakeSourceEnable (PRCM_HIB_GPIO13);
// PRCMHibernateWupSourceDisable
(PRCM_HIB_GPIO17);//不起作用:
/*进入休眠模式*/
MAP_PRCMHibernateEnter();
/*循环永久-未达到*/
for (;){}