打印
[菜农助学交流]

【第四批】新手笔记一

[复制链接]
2164|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
357482894|  楼主 | 2011-11-17 21:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
gp, IO, pi, GPIO, AC
本帖最后由 357482894 于 2011-11-18 19:37 编辑

拿到板子有一段时间了,总结一下助学板学习初期遇到的问题,请大叔和前辈们指教。
首先,是关于安装开发环境。我电脑上已装有KEIL C51 uVision3,在安装KEIL uVision4 MDK时并没有遇到问题,但在安装Nulink Keil Driver时遇到了问题。如图所示,

实际安装为uVision3 setup,我在下一步选择路径时强制到了Keil4文件夹,不知道这种处理方法是否正确,暂时还没出问题。
安装好开发环境后,本着初生牛犊不怕虎的精神,我将开发板连到了电脑,打开了一个示范例程,然后进行配置。在配置Debug时选择Nulink后,提示更新韧体(firmware),当时并不太明白,直接选择了继续。然后悲剧就出现了,更新无法完成。这时候Nulink的指示灯都不亮了。群里有前辈建议用ICP,我在园地里也找到了ICP更新韧体的办法,但我尝试了好多次,仍然无法完成更新。无奈下我选择了重启电脑,然后继续尝试,这时候奇迹就发生了,ICP很顺利的完成了更新。不知道症结在哪里。
然后,关于程序文件的组织,我是按照Cube所写《菜农M0助学板快速入门指南0.1.2》中的方法,将内核文件、系统文件、启动文件及标准头文件放到CMSIS文件夹,将外设库函数放到BSP_Lib文件夹,将自己的文件放到User文件夹,如下图所示:

Keil里,文件的目录树如下:



最后,关于工程配置选项,我总结了三个重要的地方:第一个是Target选项卡下的System-Viewer File,路径如下:
这个应该是关于特殊功能寄存器的东西,我不太清楚。然后就是C/C++选项卡下地Include Paths,这个是选择头文件的,因为在工程中引用外设库文件时为了方便直接引用的.c文件,缺少.c文件对应的.h文件,在这项选项中加入包含所有会用到的.h文件的路径即可解决这个问题。第三个就是让我郁闷了很久的问题,User选项卡下的Run#1Run#2,在园地里看到的指导是带有“\”的一段字符,我开始以为是路径,但是找了好久也没找到路径指向哪里。直到我看了若干次后注意到了三个字“命令行”,对于这个我也不清楚到底是啥意思,但我知道可以复制,然后我粘贴到了Keil里,然后就可以了。
以上是我这段时间遇到的问题总结,还望指教。
最后附上我的一段小程序,按键控制LEDKEY2右移,KEY1左移。
 
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
void Sys_Init()
{
    UNLOCKREG();         
    SYSCLK->WRCON.XTL12M_EN = 1;//设定12M外部晶振
    DrvSYS_Delay(5000);//等待时钟就绪
}
int main (void)
{
    int i=2;
Sys_Init();
DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);
DrvGPIO_Open(E_GPB,14,E_IO_INPUT);
DrvGPIO_Open(E_GPB,14,E_IO_INPUT);
while(1)
{
  if(DrvGPIO_GetBit(E_GPB,14)==0|DrvGPIO_GetBit(E_GPB,15)==0)
  {
   if(DrvGPIO_GetBit(E_GPB,14)==0)
   {
     DrvSYS_Delay(10000);
     if(DrvGPIO_GetBit(E_GPB,14)==1)
     {
      i++;
     DrvGPIO_SetBit(E_GPA,i-1);
     if(i>5) i=2;
     DrvGPIO_ClrBit(E_GPA,i);
     }
   }
   if(DrvGPIO_GetBit(E_GPB,15)==0)
   {
     DrvSYS_Delay(10000);
     if(DrvGPIO_GetBit(E_GPB,15)==1)
     {
      i--;
     DrvGPIO_SetBit(E_GPA,i+1);
     if(i<2) i=5;
     DrvGPIO_ClrBit(E_GPA,i);
     }
   }
  }
}
}



相关帖子

沙发
hotpower| | 2011-11-17 21:31 | 只看该作者
最好附工程压缩包。
按惯例发放裤子,以便参加选美。

使用特权

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

本版积分规则

1

主题

756

帖子

1

粉丝