+开发演示
在这里,笔者将进行一个颜色识别的实验,利用这个套件分辨出多种不同的颜色,并通过屏幕进行打印。
先来看看自带的DEMO,打开\applications\lpc8xx\keil_uvision_projects\nxp_lpcxpresso_824路径下的nxp_lpcxpresso_824_periph_examples.uvmpw文件,这个是利用Keil MDK-ARM制作的工程,就是板子出厂自带的DEMO。打开之后可以看到如图5-1所示的几个文件,这些文件包含了LPC824的库,与应用层的文件,首先需要编译上面的两个lib文件,然后才能编译下面两个,否则会报错。
图5-1 DEMO工程文件组成
将四个文件分别编译完成之后,下载到开发板,确认这个工程可以正常运行。
图5-2 DEMO工程文件编译与下载正常
随后可以着手基于这个工程文件进行自定义工程的开发了。
首先对这个工程的具体内容进行个简单的介绍。此工程的main函数存放于periph_i2cm_polling.c这个文件中,如图5-3所示
图5-3 代码解析1
在这个main函数中,完成了以下几个步骤
1、初始化所有的部件,包括i2c接口的屏幕、传感器、MCU的定时器与中断等
图5-4 代码解析2
2、显示开机时的DEMO
3、显示欢迎的界面,包括作者名等
图5-5 代码解析3
4、采集RGBW四个值,采集的方法是:先发送一个字符给传感器,说明需要采集何种颜色的(RGBW分别是0x08 0x09 0x0A 0x0B),然后多次采样取平均值。具体的程序如下图所示
图5-6 代码解析4
5、实时将RGBdata信息通过I2C总线传输到显示屏上面进行显示。
此外,LCM显示屏相关的函数,如清屏、显示等,都存放于名为SGX_G12864的文件中。
除了这个例程之外,此开发板还提供了一个点灯的例程。这个例程里面只有一个函数有意义,就是这个void Board_LED_Set(uint8_t LEDNumber, bool State);
这个程序编译之后板子上面的LED会闪烁。如下图所示