Lee_ 在 提交
CC2650DK这块开发板最大的优点就是自带一块128*64像素的液晶显示屏,用多块板在室外做实验时可以脱离电脑,这是非常有用的。今天就来讲讲这块液晶的使用。当然,先上例子再详细讲解。
需要注意,这块液晶所使用的驱动需要手动引入,插麻烦。
1.打开CCS,选择菜单【Project】-->【New CSS Project】,弹出New CSS Project对话框:
2.【Connection】组合框选择“Texas Instruments XDS100v3 USB Debug Probe”调试器。
3.给工程起名:【Project name】写上“demo_LCDDisplay”。
4.选择模板:在【Project templates and examples】中依次展开:【TI-RTOS Examples】-->【CC2650 Development Kit(7ID)】-->【Driver Examples】-->【TI Driver Examples】-->【Empty Examples】,选择【Empty Project】。
注意,跟上次不同,此时不能直接点Finish按钮结束。需要单击Next按钮进入RTSC Cconfiguration Settings窗口。
单击Add按钮,选择【Select repository from file-system】单选按钮,然后单击【Browse】按钮。选择【C:\ti\tirex-content\tirtos_cc13xx_cc26xx_2_21_00_06\products\tidrivers_cc13xx_cc26xx_2_21_00_04\packages\ti\mw】目录,单击【OK】按钮。最后效果如下图所示:
单击【Finish】按钮后建成新项目。
我做过实验,LCD的显示在主进程里无法完成,必须在线程内才能正常显示。幸好我们新建的这个Project已经自带一个线程,在里面完成LCD显示即可。代码如下:
程序很简单,液晶可显示8行英文,此程序在第四行显示Hello World。另外需注意,这东西是不支持中文的,别一高兴把中文写上去了。
LCD的驱动在LCDDogm1286.h头文件中,注释巨详细,让人喜欢啊!
DOGM128W-6 LCD为128*64像素显示器
其中PAGE0~PAGE7代表液晶所能显示的8行,这里用Page让人感觉不对头,应该用row吧。它使用SPI总线进行驱动。要使用此液晶,首先首先要找开SPI总线:
SPI_init();//初始化SPI总线
然后将Board_3V3_EN配置为高电平:
PIN_Config pinTable[] = {
Board_3V3_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,
PIN_TERMINATE
};
然后配置LCD缓冲区,要在LCD上显示文字,只能先将文字写入LCD缓冲区,然后调用LCD_update()来显示缓冲区内容。缓冲区声明如下:
Char lcdBuffer0[LCD_BYTES] = { 0 };
LCD_Buffer lcdBuffers[] = {
{ lcdBuffer0, LCD_BYTES, {NULL} }
};
可声明多个缓冲区,如果一次写入字符超过一行的显示范围,则会自动换行,但需要注意,这时字母有可能被分成两半显示上上一行尾和下一行头。
下面这句代码用于将文字写入缓冲区:
LCD_bufferPrintString(lcdHandle, 0, "Hello World!", 0, LCD_PAGE3);
参数1:lcdHandle为液晶句柄。
参数2:0 表示缓冲区在数组中的下标。
参数3:所显示字符串的指针。
参数4:0 表示从第几列像素开始显示(范围为0~127)。
参数5:表示在第几行显示。
更详细的描述,请参考LCDDogm1286.h文件的代码注释吧,我就不哆嗦了。但这东西只能在线程中使用,这给写程序带来不少麻烦,得先去研究线程,才能更复杂地使用它。
来源: abatei的博客