[菜农助学交流] 【第四批】新手笔记一

[复制链接]
2837|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左移。

  1. #include <stdio.h>
  2. #include "NUC1xx.h"
  3. #include "DrvGPIO.h"
  4. #include "DrvSYS.h"
  5. void Sys_Init()
  6. {
  7.     UNLOCKREG();         
  8.     SYSCLK->WRCON.XTL12M_EN = 1;//设定12M外部晶振
  9.     DrvSYS_Delay(5000);//等待时钟就绪
  10. }
  11. int main (void)
  12. {
  13.     int i=2;
  14. Sys_Init();
  15. DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);
  16. DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
  17. DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
  18. DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);
  19. DrvGPIO_Open(E_GPB,14,E_IO_INPUT);
  20. DrvGPIO_Open(E_GPB,14,E_IO_INPUT);
  21. while(1)
  22. {
  23.   if(DrvGPIO_GetBit(E_GPB,14)==0|DrvGPIO_GetBit(E_GPB,15)==0)
  24.   {
  25.    if(DrvGPIO_GetBit(E_GPB,14)==0)
  26.    {
  27.      DrvSYS_Delay(10000);
  28.      if(DrvGPIO_GetBit(E_GPB,14)==1)
  29.      {
  30.       i++;
  31.      DrvGPIO_SetBit(E_GPA,i-1);
  32.      if(i>5) i=2;
  33.      DrvGPIO_ClrBit(E_GPA,i);
  34.      }
  35.    }
  36.    if(DrvGPIO_GetBit(E_GPB,15)==0)
  37.    {
  38.      DrvSYS_Delay(10000);
  39.      if(DrvGPIO_GetBit(E_GPB,15)==1)
  40.      {
  41.       i--;
  42.      DrvGPIO_SetBit(E_GPA,i+1);
  43.      if(i<2) i=5;
  44.      DrvGPIO_ClrBit(E_GPA,i);
  45.      }
  46.    }
  47.   }
  48. }
  49. }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
hotpower 发表于 2011-11-17 21:31 | 显示全部楼层
最好附工程压缩包。
按惯例发放裤子,以便参加选美。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

756

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部