嵌入式技术论坛
直播中

goodmbby

8年用户 1126经验值
擅长:处理器/DSP
私信 关注
[经验]

如何去实现一种基于NUC980开发板的NTP网络时钟设计

需要的软件:
1、RT_Thread4.0.3源码包
2、RTT env工具
3、NuWriter下载工具
4、MDK5.x (建议用最新版本)
首先我们搭建NUC980开发板的开发环境,为了更方便的使用RTT官方提供的各种软件包,
我们选择最新的4.0.3版本,其中已经包含了NUC980IOT开发板的基础工程,因为习惯了keil开发,所以本次我们并没有使用RT-Thread Studio开发。
先解压我们下载好的env工具包,然后按照官方提供的指导说明,安装好env工具,如下图;



然后我们解压RT_Thread4.0.3源码包,然后依次定位到“rt-thread-v4.0.3->bsp->nuvoton->nk-980iot”目录下,在此处右键选在打开“ConEmu Here”,便可以在此处目录下打开env工具,如下图;

env工具打开后会弹出一个终端命令对话框,我们输入“menuconfig”并回车,并可以进入NUC980IOT开发板的配置界面,如下图;

我们依次在其中选择并配置好我们需要的功能,例如驱动液晶屏我们需要用的SPI接口,并使能ILI9431驱动程序,配置如下图;

假如要是用文件系统功能,可以按下图选择自己需要的文件系统类型;

关于使用env工具配置需要的软件功能,此处就不咋赘述了,有需要的可以自己研究一下;
配置完成后,我们保存并退回到终端控制界面,输入“scons --target=mdk5”并回车,便可以基于我们刚刚的配置,下载所需的软件包,并自动生成MDK5工程文件,接下来我们只需要在MDK5中打开工程,便可以进行MUC980的开发了,工程打开后如下图。

工程打开之后,可以先编译一下看看能否通过,否则直接修改代码有问题的话,分不清是工程生成的问题还是自己修改的问题,比如我这个工程,首次编译提示找不到“ramdisk_init”这个函数,经过派车发现其实是工程中没有包含“drv_ramdisk.c”文件所致,只需要手动添加进来即可,如下图;

编译结果如下,还有两个警告可以暂时不管;

工程编译通过了,我们就可以大胆的编辑自己的代码了,出了问题排查自己修改的地方就可以了,比如可以先点个灯试一下;

关于NTP跟ILI9341液晶屏的驱动,实际在刚刚的配置中已经包含了,我们只需要按照驱动程序的配置接好线,进行简单地调试即可使用,引脚配置及驱动函数如下图;

关于rt_config.h中,GPIO引脚的定义需要说明一下,这个数值是从GPIOA开始,一次累加的一个数值,例如PA0脚是0,PC1脚就是16*2+1=33,如下图;

至于ILI9341液晶屏跟NTP的调试也就不在赘述了,基本都是软件包里现成的驱动函数可以直接调用。需要说明的是,本次开发我并没有将程序下载到SPI Flash中,而是直接使用USB下载到内存中运行的,个人感觉这样还是比较方便的,下载工具使用官方的NuWriter,可以选择下载后直接运行程序,如下图;

关于硬件方面也确实没啥可说的,两天USB先一根负责下载程序,一个用于串口调试,板子集成了网口,直接接入有线网络即可上网,上一张板子的接线图;

唯一遗憾的是,这次参赛的时间太短了,收到板子的时候已经是5月7号了,也就没有时间去优化界面了,来一张显示界面的照片,将就看吧


原作者:通宵敲代码


更多回帖

发帖
×
20
完善资料,
赚取积分