打印
[牛人杂谈]

NuEdu-SDK-M451 入门教程

[复制链接]
10040|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdk, TE, ck, se

       很开心今天得到了一块新唐公司  的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.首先去官网下载如下内容:file:///C:\Users\liunian\AppData\Roaming\Tencent\Users\574433742\QQ\WinTemp\RichOle\WIWV9$_9@GUKA_])KK2M416.jpgfile:///C:\Users\liunian\AppData\Roaming\Tencent\Users\574433742\QQ\WinTemp\RichOle\WIWV9$_9@GUKA_])KK2M416.jpg
file:///C:\Users\liunian\AppData\Roaming\Tencent\Users\574433742\QQ\WinTemp\RichOle\WIWV9$_9@GUKA_])KK2M416.jpgfile:///C:\Users\liunian\AppData\Roaming\Tencent\Users\574433742\QQ\WinTemp\RichOle\WIWV9$_9@GUKA_])KK2M416.jpg
   
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);
        GPIO_SetMode(PC, BIT11, GPIO_MODE_OUTPUT);
    while(1)
    {
        /* Configure PC.9 to low */
        PC9  = 1;

        /* Delay 200 ms */
        CLK_SysTickDelay(200000);

        /* Configure PC.9 to high */
        PC9  = 0;

        /* Delay 200 ms */
        CLK_SysTickDelay(200000);
    }

}


编译程序之后,下载到单片机之后,运行就可以看到PC9对应的LED灯开始闪烁。

这里只是简单的介绍一下这个开发板,和环境配置的关键的步骤(如果有什么问题Email我:),574433742@qq.com)。新唐提供的资料还是蛮丰富的,可以多多参考官方给的资料。
以后会详细的写一下这个单片机的各个功能模块的应用。
希望能跟更多使用新唐芯片的攻城狮多多交流和学习。。。:lol


沙发
liunian_92|  楼主 | 2014-11-12 10:44 | 只看该作者

也是醉了,原谅我第一次来发帖子吧,编辑好的东西,点击发表的时候就完全不是编辑时候的样子了。。。。
这是怎么回事呢,知情人士能告诉一下吗
谢谢

使用特权

评论回复
板凳
wlzeagle| | 2014-11-12 12:59 | 只看该作者
21IC怎么不给代码着色?

使用特权

评论回复
地板
meyong08| | 2014-11-12 13:01 | 只看该作者
楼主发的东西很好啊
希望继续把接下来的心得体验发出来参考

使用特权

评论回复
5
franki_18| | 2014-11-12 14:00 | 只看该作者
支持一下  

使用特权

评论回复
6
轻浮的思维| | 2014-11-12 15:32 | 只看该作者
拿到的当天晚上就跑了下!编译的时候报错找不到core_cm4.h和stdio.h,这个错误把Target路径添加下就可以了!

使用特权

评论回复
7
bobde163| | 2014-11-12 23:04 | 只看该作者
支持一下子

使用特权

评论回复
8
iwqt1983| | 2014-11-13 21:55 | 只看该作者
M451的手册有吗?

使用特权

评论回复
9
zxf0168| | 2014-11-14 11:28 | 只看该作者
liunian_92 发表于 2014-11-12 10:44
也是醉了,原谅我第一次来发帖子吧,编辑好的东西,点击发表的时候就完全不是编辑时候的 ...

使用代码编辑器啊:lol

使用特权

评论回复
10
zxf0168| | 2014-11-14 11:28 | 只看该作者
轻浮的思维 发表于 2014-11-12 15:32
拿到的当天晚上就跑了下!编译的时候报错找不到core_cm4.h和stdio.h,这个错误把Target路径添加 ...

路径填写错误啊:lol

使用特权

评论回复
11
zxf0168| | 2014-11-14 11:29 | 只看该作者
meyong08 发表于 2014-11-12 13:01
楼主发的东西很好啊
希望继续把接下来的心得体验发出来参考

希望能看到楼主后续的东西:lol

使用特权

评论回复
12
zxf0168| | 2014-11-14 11:29 | 只看该作者
wlzeagle 发表于 2014-11-12 12:59
21IC怎么不给代码着色?

是个人编辑的问题吧:)

使用特权

评论回复
13
373810773| | 2014-11-17 10:03 | 只看该作者
支持一下

使用特权

评论回复
14
373810773| | 2014-11-17 10:04 | 只看该作者
期待楼主更多心得体会

使用特权

评论回复
15
liunian_92|  楼主 | 2014-11-18 12:39 | 只看该作者
meyong08 发表于 2014-11-12 13:01
楼主发的东西很好啊
希望继续把接下来的心得体验发出来参考

感谢支持,我会好好努力的

使用特权

评论回复
16
liunian_92|  楼主 | 2014-11-18 12:40 | 只看该作者
373810773 发表于 2014-11-17 10:04
期待楼主更多心得体会

感谢感谢,我会好好努力的。希望可以跟大家一起探讨多多学习

使用特权

评论回复
17
liunian_92|  楼主 | 2014-11-18 12:41 | 只看该作者
zxf0168 发表于 2014-11-14 11:29
是个人编辑的问题吧

回头好好研究研究这个东东

使用特权

评论回复
18
373810773| | 2014-11-20 16:43 | 只看该作者
liunian_92 发表于 2014-11-18 12:40
感谢感谢,我会好好努力的。希望可以跟大家一起探讨多多学习

共同进步:)

使用特权

评论回复
19
zxf0168| | 2014-11-21 17:56 | 只看该作者
liunian_92 发表于 2014-11-18 12:41
回头好好研究研究这个东东

:lol编辑好了很漂亮的

使用特权

评论回复
20
捉虫天师| | 2015-11-17 19:59 | 只看该作者
使用插入代码啊
看,这样
  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);
        GPIO_SetMode(PC, BIT11, GPIO_MODE_OUTPUT);
楼主讲讲FPU怎么用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝