打印
[Cortex-M0技术交流]

【第四批】第三帖 道可道的入门

[复制链接]
1512|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gp, IO, AC, GPIO, LED
本帖最后由 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

相关帖子

沙发
hotpower| | 2011-11-24 19:12 | 只看该作者
入门就好~~~
可以参加选美了

使用特权

评论回复
板凳
xyz549040622|  楼主 | 2011-11-24 19:26 | 只看该作者
:lol要继续努力

使用特权

评论回复
地板
308141883| | 2012-5-30 19:58 | 只看该作者
兄弟加油!

使用特权

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

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2754

主题

19235

帖子

104

粉丝