| 本帖最后由 xyz549040622 于 2011-11-24 19:42 编辑 
 经过几天的努力,终于掌握了M0的入门了,比起群里面好多人来说,落后的不是一点半点,但是俺还是要说,俺终于点亮LED啦。闲话少说,以下是我的一点感受。
 
 1.工程文件的建立
 
 看过N多帖子后,终于熟练的掌握工程的建立了,这里介绍傻瓜式的教程,即你不用配置任何选项,在神农老师(好像是他吧)的模板里直接修给即可,各种配置已设置完毕。
 对于菜鸟来说,你所需要的就是用keil打开模板中User文件夹中的这个文件修改即可。
 
 然后在打开的页面中书写你的代码即可,当你用到其他功能模块的时候,你可在 library files中添加所需要的.c文件,比如AD或者USB,.c文件在你下载的模板路径中寻找【以我的电脑为例   D:\学习\嵌入式\新塘M0\程序\NUC 模板\BSP_Lib\Src\Driver】
 
 
 2.写程序所准备的工作
 当你写程序的时候,你会发现M0和51相比,需要用到的寄存器和驱动太多了,你不可能都记住,所以数据手册是必不可少的,具体到【菜农助学活动】资料汇总与更新 https://bbs.21ic.com/icview-225655-1-1.html 下载
 3.简单LED循环闪烁程序【和51中点亮LED类似】
 
 /*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function                                                                                          */
/*---------------------------------------------------------------------------------------------------------*/    
int main (void)
{
        while(1)                                                                                                         
        {
                DrvGPIO_ClrBit(E_GPA, 2);                                                                 //  LED1点亮
            DrvSYS_Delay(50000);
                DrvGPIO_SetBit(E_GPA, 2);
                DrvGPIO_ClrBit(E_GPA, 3);                                                                 //  LED2点亮
            DrvSYS_Delay(50000);
                DrvGPIO_SetBit(E_GPA, 3);
                DrvGPIO_ClrBit(E_GPA, 4);                                                                 //  LED3点亮
                                                                                 //  LED4点亮
                DrvSYS_Delay(50000);
                DrvGPIO_SetBit(E_GPA, 4);
            DrvGPIO_ClrBit(E_GPA, 5);
            DrvSYS_Delay(50000);
                DrvGPIO_SetBit(E_GPA, 5);
        }
}
然后编译,下载到板子即可【三个编译键,初学者只按第二个即可
 
 经过测试,俺居然发现,我的LED4不闪烁,初步估计,是LED虚焊,待会重新检测
 
 4.遇到的问题
 例程中的好多语句看不懂,比如     SYSCLK->;PWRCON.XTL12M_EN = 1;    这是什么意思,查资料的时候说是寄存器操作,可是找不到
 PWRCON是什么寄存器【求指教,寄存器操作的资料和一点点拨】下来得加强C语言的学习,因为好多用到指针
 file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.png
 |