首先是PACK包,KEIL官方下载不太好下,好在有软件同事给下下来了:
Nuvoton.NuMicro_DFP.1.3.21.pack
其次是Nu-link驱动:Nu-Link_Keil_Driver 3.13.7537r.exe 新唐官方网站有
第一节课:Hello Word
void SYS_Init(void)
{
/*---------------------------------------------------------------------------------------------------------*/
/* Init System Clock */
/*---------------------------------------------------------------------------------------------------------*/
/* Unlock protected registers 解锁受保护寄存器 */
SYS_UnlockReg();
/* Enable Internal RC 12MHz clock 使能内部RC 12MHz时钟*/
/*
[0]外部高速晶振使能位HXTEN √√√
[1]外部低速晶振使能位LXTEN
[2]内部高速RC振荡器使能位HIRCEN
[3]内部低速RC振荡器使能位LIRCEN
*/
CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);
/* 检查所选时钟源状态 */
CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
/* 设置HCLK时钟源和HCLK时钟分频器 */
CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));
/* 此功能启用模块时钟 */
CLK_EnableModuleClock(UART0_MODULE);
/* 该功能设置了所选模块时钟源和模块时钟分频器 */
CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HIRC, CLK_CLKDIV0_UART0(1));
/* 这个函数用于更新SystemCoreClock变量当核心时钟改变时必须调用。 */
/* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
SystemCoreClockUpdate();
/*---------------------------------------------------------------------------------------------------------*/
/* Init I/O Multi-function 初始化uart0默认多功能引脚 */
/*---------------------------------------------------------------------------------------------------------*/
Uart0DefaultMPF();
/* Lock protected registers 锁受保护寄存器*/
SYS_LockReg();
}
int main()
{
SYS_Init();
/* Init UART to 115200-8n1 for print message */
UART_Open(UART0, 9600);
/* Connect UART to PC, and open a terminal tool to receive following message */
printf("Hello World \n");
/* Got no where to go, just loop forever */
while (1);
}