本帖最后由 xyz549040622 于 2011-11-24 19:42 编辑
经过几天的努力,终于掌握了M0的入门了,比起群里面好多人来说,落后的不是一点半点,但是俺还是要说,俺终于点亮LED啦。闲话少说,以下是我的一点感受。
1.工程文件的建立
看过N多帖子后,终于熟练的掌握工程的建立了,这里介绍傻瓜式的教程,即你不用配置任何选项,在神农老师(好像是他吧)的模板里直接修给即可,各种配置已设置完毕。
NUC 工程模板.rar
(708.69 KB)
对于菜鸟来说,你所需要的就是用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 |