EFM32的Debug接口,使用的是SWD接口,即两线制的JTAG接口,两个信号线分别是SWCLK,SWDIO。SWCLK默认为内部下拉,SWDIO默认为内部上拉。如果想将这两个口复用成GPIO口的话,则需要修改GPIO->Route寄存器。关闭相应的复用功能。
例程:
关闭SWD接口,并且设置为GPIO输出功能。
#include <stdint.h>
#include <stdbool.h>
#include "efm32.h"
#include "efm32_chip.h"
#include "efm32_cmu.h"
#include "efm32_gpio.h"
/**************************************************************************//**
* @brief Main function
*****************************************************************************/
int main(void)
{
/* Chip errata */
CHIP_Init();
CMU_ClockEnable(cmuClock_GPIO,true);
unsigned long ulDelay = 30000000;
while(ulDelay--);
GPIO_DbgSWDClkEnable(false);
GPIO_DbgSWDIOEnable(false);
GPIO_PinModeSet(gpioPortF,0,gpioModePushPull,1);
GPIO_PinModeSet(gpioPortF,1,gpioModePushPull,1);
/* Infinite blink loop */
while (1)
{
unsigned long ulcc = 5000;
while(ulcc--);
GPIO_PinOutToggle(gpioPortF,0);
GPIO_PinOutToggle(gpioPortF,1);
}
}