LPC54608开发板基本例程的测试
在LPC54608的开发包中,配置了较为丰富的例程,通过这些例程可以引导我们较快地上手它的使用和开发。初略地讲可把例程分为两类,一类是基于串口的内部资源用法的演示例程,另一类是基于触摸屏的演示例程。(含第三方演示例程)
在介绍这两类例程之前,先插播一个小介绍,就是LPC54608开发板已有C版本了,主要区别由红色线框标出。说明已有B版本的灵活测试,已趋于功能相对固定。
图1 B版本
图2 C版本
1.基于串口的演示例程
在开始验证此类例程前,首先要了解一下Jp6和JP5的用途。当进行调试下载时,一定要将JP5至于OFF状态,否则是无法查看到调试器的,也就无法进行程序的下载。
当用到串口进行验证时,不但要将JP5保持OFF状态,JP6也应置为OFF状态,否则串口就无法正常使用。
1)hello_world例程
hello_world例程是一个串口通讯的检测例程,其程序主体如下:
while (1)
{
ch = GETCHAR();
PUTCHAR(ch);
}
其作用就是不断检测是否有字符接收,有则把接收的字符原样发回,在验证时,相应的串口参数如图3进行设置,则可验证其功能。
图3 串行通讯
2)A/D采样例程
lpc_adc_basic例程是一个A/D采样的检测例程,其程序主体如下:
while (1)
{
GETCHAR();
ADC_DoSoftwareTriggerConvSeqA(DEMO_ADC_BASE);
while (!ADC_GetChannelConversionResult(DEMO_ADC_BASE, DEMO_ADC_SAMPLE_CHANNEL_NUMBER, &adcResultInfoStruct))
{
}
PRINTF("adcResultInfoStruct.result = %d\r\n", adcResultInfoStruct.result);
PRINTF("adcResultInfoStruct.channelNumber = %d\r\n", adcResultInfoStruct.channelNumber);
PRINTF("adcResultInfoStruct.overrunFlag = %d\r\n", adcResultInfoStruct.overrunFlag ? 1U : 0U);
PRINTF("\r\n");
}
其作用就是通过不断检测是否有字符接收,有则启动对Adc0口的A/D转换,并输出采集结果,其效果如图4所示。
图4 A/D采样
3)RTC例程
rtc例程是一个检测RTC的例程,其功能是以程序设置的时间为起始时间来启动RTC,然后再设置一个有效的时间值并通过串口发出,则会呈现图5所示的效果。
之所以设置的时间与提示的时间出现一定的偏差,是因为提示时间=当前时间+设置时间,而RTC时钟是处于运行状态的,所设置的时间其实是与发送那一刻的RTC时间相加所产生的提示时间,故其时间偏差就是提交时间与初始时间的时间差。
实现上述处理的关键语句如下:
/* 读取RTC 的秒寄存器到当前时间变量中 */
currSeconds = RTC->COUNT;
/* 将提示时间相到时间变量中 */
currSeconds += sec;
/* 设置提示时间 */
RTC->MATCH = currSeconds;
/* 获取提示时间值 */
RTC_GetAlarm(RTC, &date);
此外,该时间提示功能是可以连续进行的,其执行效果如图6所示。
图5 RTC测试
图6 多次执行
2.基于触摸屏的演示例程
1)cdc_cursor例程
lcdc_cursor例程是一个光标在屏幕范围内沿直线移动的例程,当光标移动到屏幕边缘时会沿折射方向继续移动,其执行效果如图7所示。
图7 光标自由移动
2)lcdc_tft例程
lcdc_tft例程是一个矩形色块平滑移动例程,当色块移动到屏幕的边缘时会改变色彩并改变移动方向,其执行效果如图8所示。
图8 色块移动效果
3)touch_cursor例程
touch_cursor例程是一个检测光标所处屏幕位置的例程,当触摸屏幕时光标会移动相应位置,并通过串口通讯将坐标位置显示出来,其执行效果如图9和图10所示。
实现该功能处理的关键语句如下:
if ((touch_event == kTouch_Down) || (touch_event == kTouch_Contact))
{
/* 更改光标位置 */
APP_SetCursorPosition(cursorPosY, cursorPosX);
/* 输出光标位置 */
PRINTF("0x%2x 0x%2x", cursorPosX, cursorPosY);
PRINTF("\r\n");
}
图9 指定光标位置
图10 显示光标位置
开发包到哪里下载?
Keil.LPC5400_DFP.2.1.0.pack在官网http://www.keil.com/dd2/Pack/,SDK_2.0_LPC54608J512.zip到网址http://www.nxp.com/search?client=nxp_search_all_results&site=nxp_zhHans&proxystylesheet=nxp_search_style_fe&sort=date%3AD%3AL%3Ad1&oe=UTF-8&ie=UTF-8&ud=1&output=xml_no_dtd&exclude_apps=1&callback=ss_show&lang_cd=zh-Hans&filter=0&getfields=*&baseUrl=%2F%2Fwww.nxp.com%2Fcn%2Fwebapp&SEARCH_OPERATOR=Contains&attempt=-1&rc=1&hl=en&dnavs=&q=lpc54608%20sdk看看。