很开心今天得到了一块新唐公司 的NuEdu-SDK-M451 开发板。小小使用了一下,分享一下自己的环境(keil uVersion4)搭建过程,和对这款芯片的看法吧,希望和大家能够交流一下使用心得,如果有什么错误还希望大家批评指正。
下图就是开发板模块:
开发板上板载的芯片型号是: M453VG6AE
下面是这个芯片的具体信息,如果想了解这个芯片更详细的信息请查看官网
• 内核 - ARM® Cortex™-M4 with DSP and FPU - 最大频率72 MHz - 工作电压: 2.5V to 5.5V - 工作温度: -40℃ ~ 105℃ • 存储 - 256 KB of Flash Memory - 32 KB of SRAM • 12-bit ADC (16 通道) • 12-bit DAC • 16-bit PWM (12 通道) • 定时器 - 4个 32bit 定时器 - RTC | • 连接 - USB 2.0 OTG - CAN 总线接口 - 四个 UART 串口 - 三个 SPI 总线接口 - 两个 I²C总线接口 (1 MHz) - Smart card 接口 - 两 个 I²S 总线接口 •安全 - CRC engine
| 这片芯片的性能和外设 从参数来看还是可以的,基本该有的功能都有了,采用Cortex-M4的内核,作为一片MCU处理速度还是相当强大的。
我的电脑里已经装好了keil C uVersion 4 ,在这里我就略过如何安装keil了(还支持IAR、CooCox等开发环境),我在这里只讲下keil的环境搭建。
1.首先去官网下载如下内容:
2.安装Nu-Link Driver
(1)将你下载的 Nu-Link_Keil_Driver_V1.27.6340.zip 解压 ,找到里面的安装文件 安装在你的 你的 keil 的安装目录里。(我的安装目录为 E:\Program\Keil u4 , 所以我安装的时候目录选中Keil u
4 即可),安装成功后,会出现 Nu-Link_Keil 这个文件夹(E:\Program\Keil u4\Nu-Link_Keil)
大家可以直接参考这个文档 NuMicro 开发环境 - Keil uVision4 快速上手.pdf 完成配置。
(2) 打开keil 之后新建一个工程。
将板级支持包(M451SeriesBSP_CMSIS_v3.00.003 )压缩包中的 M451SeriesBSP_CMSIS_v3.00.003 \Library 下的 CMSIS文件夹 Device文件夹 和 StdDriver 文件夹 复制到你工程所在的文件夹中。
(3)
在新建的项目中 建立图片上三个文件夹。
(3)
为CMSIS 中添加 图片上的文件 (分别在 keil工程所在目录\Library\Device\Nuvoton\M451Series\Source 和 keil工程所在目录\Library\Device\Nuvoton\M451Series\Source\IAR 文件夹中)
user 文件夹中存放用户自己新建的 main.c 文件 也是主程序
library 中添加 ( keil工程所在目录\Library\StdDriver\src 和)
(4)
为工程添加头文件 。
在 main.c 中放入下面的程序:
/**************************************************************************//** * @file main.c
* @version V1.00
* $Date: 14/08/28 10:51a $
* @brief Toggle PC.9 to turn on / off the board LED
*
* @note
* Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved.
*
******************************************************************************/
#include <stdio.h>
#include "M451Series.h"
#define HCLK_CLOCK 72000000
void SYS_Init(void)
{
/*---------------------------------------------------------------------------------------------------------*/
/* Init System Clock */
/*---------------------------------------------------------------------------------------------------------*/
/* Unlock protected registers */
SYS_UnlockReg();
/* Enable HIRC clock (Internal RC 22.1184MHz) */
CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk);
/* Wait for HIRC clock ready */
CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
/* Select HCLK clock source as HIRC and and HCLK clock divider as 1 */
CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1));
/* Enable HXT clock (external XTAL 12MHz) */
CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);
/* Wait for HXT clock ready */
CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);
/* Set core clock as HCLK_CLOCK */
CLK_SetCoreClock(HCLK_CLOCK);
/* Update System Core Clock */
/* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
SystemCoreClockUpdate();
/*---------------------------------------------------------------------------------------------------------*/
/* Init I/O Multi-function */
/*---------------------------------------------------------------------------------------------------------*/
/* Set GPD multi-function pins for UART0 RXD and TXD */
SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD6MFP_Msk | SYS_GPD_MFPL_PD1MFP_Msk);
SYS->GPD_MFPL |= (SYS_GPD_MFPL_PD6MFP_UART0_RXD | SYS_GPD_MFPL_PD1MFP_UART0_TXD);
/* Lock protected registers */
SYS_LockReg();
}
/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
/* Init System, IP clock and multi-function I/O
In the end of SYS_Init() will issue SYS_LockReg()
to lock protected register. If user want to write
protected register, please issue SYS_UnlockReg()
to unlock protected register if necessary */
SYS_Init();
/* Select SysTick clock source as HXT */
CLK_SetSysTickClockSrc(CLK_CLKSEL0_STCLKSEL_HXT);
/* Configure PC.9 as Output mode */
GPIO_SetMode(PC, BIT9, GPIO_MODE_OUTPUT);
GPIO_SetMode(PC, BIT10, GPIO_MODE_OUTPUT);
|