本文最后修改时间:2017年11月13日 15:00

 

一、本节简介

本节以simple_peripheral工程为例,介绍如何使用LCD显示。

二、实验平台

1)CC2640R2F平台

①协议栈版本:CC2640R2 SDK v1.40.00.45

②编译软件:CCS7.3.0.00019

③硬件平台:香瓜CC2640R2F开发板

④仿真器:香瓜XDS100V3下载器

三、版权声明

1)作者:甜甜的大香瓜

2)声明:喝水不忘挖井人,转载请注明出处。

3)纠错/业务合作:897503845@qq.com

4)香瓜BLE之CC2640R2F群:557278427

5)本文出处:原创连载资料《简单粗暴学蓝牙5》

6)完整开源资料下载地址(电脑端打开):

https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i

7)香瓜CC2640R2F开发板购买链接:

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4023-16963296339.8.21bfc58419sWKt&id=558653143169

8)香瓜XDS100V3下载器购买链接:

https://item.taobao.com/item.htm?spm=a230r.1.14.1.1d150040zvJBco&id=558356989143&ns=1&abbucket=6#detail

四、实验前提

1、在进行本文步骤前,请先阅读以下章节:

1)《简单粗暴学蓝牙5》的“第一章至第四章”章节​。

2、在进行本文步骤前,请先实现以下章节:

1)《简单粗暴学蓝牙5》的“第三章 软件的安装及使用”章节。

2) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之LED》:http://blog.csdn.net/feilusia/article/details/78087346

3) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之自定义按键》:http://blog.csdn.net/feilusia/article/details/78239447

4) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之自定义周期事件》:http://blog.csdn.net/feilusia/article/details/78245788

5) 《简单粗暴学蓝牙5》的《香瓜CC2640R2F之有源蜂鸣器》:http://blog.csdn.net/feilusia/article/details/78144258

五、基础知识

1、本文使用的是什么LCD?

答:

使用的是opengua设计的OLED。

1)图片

2)购买地址

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-16963296341.2.5c196d0ci31tGM&id=558148641485

3)基本参数

2、本文控制LCD的流程是如何的?

答:

1)硬件连接

OLED引脚 香瓜CC2640R2F开发板引脚
GND GND
VCC VCC
D0 IOID_9
D1 IOID_10
RST IOID_4
DC IOID_26

2)总线协议:IO口软件模拟SPI

3)软件控制流程

①IO初始化。

②根据时序初始化LCD。

③显示。

六、硬件原理
1、开发板对应位置


需将拨码开关的左8、左9、左11、左12,共4个按键上拨。

七、实验步骤

1、编写并添加自定义的LCD驱动

1)写一个LCD驱动GUA_LCD.c(存放在“……\simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\GUA”路径下)

//**********************************************************************
//name:         GUA_LCD.c
//introduce:    香瓜的LCD驱动
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
#include <string.h>
#include <stdio.h>#include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Semaphore.h>
#include <ti/sysbios/knl/Queue.h>#include "Board.h"
#include "util.h"#include "GUA_LCD.h"/*********************宏定义************************/
#define GUA_LCD_D0                  IOID_9      //D0(SCLK)
#define GUA_LCD_D1                  IOID_10     //D1(MOSI)
#define GUA_LCD_RST                 IOID_4      //复位
#define GUA_LCD_DC                  IOID_26     //A0  H/L 命令数据选通端,H:数据,L:命令#define GUA_LCD_X_WIDTH             128
#define GUA_LCD_Y_WIDTH             64
#define GUA_LCD_MAX_BUF             25
#define GUA_LCD_HAL_MAX_CHARS       16#define GUA_LCD_SCL_1()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D0, 1)
#define GUA_LCD_SCL_0()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D0, 0)
#define GUA_LCD_SDA_1()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D1, 1)
#define GUA_LCD_SDA_0()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_D1, 0)
#define GUA_LCD_RST_1()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_RST, 1)
#define GUA_LCD_RST_0()             PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_RST, 0)
#define GUA_LCD_DC_1()              PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_DC, 1)
#define GUA_LCD_DC_0()              PIN_setOutputValue(GUA_HlcdPins, GUA_LCD_DC, 0)/*********************内部变量************************/
static PIN_State  GUA_LcdPins;
static PIN_Handle GUA_HlcdPins = NULL;//IO配置
static PIN_Config GUA_LcdPinsCfg[] =
{GUA_LCD_D0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,GUA_LCD_D1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,GUA_LCD_RST | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,GUA_LCD_DC  | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,PIN_TERMINATE
};/*********************内部函数************************/
/*
//16*16的点阵字体取模方式:共阴——列行式——逆向输出
static const GUA_U8 GUA_F16x16[] =
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};//8*16的点阵
static const GUA_U8 GUA_F8X16[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//  00x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,// ! 10x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// " 20x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,// # 30x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,// $ 40xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,// % 50x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,// & 60x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ' 70x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,// ( 80x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,// ) 90x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,// * 100x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,// + 110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,// , 120x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,// - 130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,// . 140x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,// / 150x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,// 0 160x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// 1 170x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,// 2 180x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,// 3 190x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,// 4 200x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,// 5 210x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,// 6 220x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,// 7 230x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,// 8 240x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,// 9 250x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,// : 260x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,// ; 270x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,// < 280x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,// = 290x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,// > 300x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,// ? 310xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,// @ 320x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,// A 330x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,// B 340xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,// C 350x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,// D 360x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,// E 370x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,// F 380xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,// G 390x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,// H 400x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// I 410x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,// J 420x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,// K 430x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,// L 440x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,// M 450x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,// N 460xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,// O 470x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,// P 480xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,// Q 490x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,// R 500x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,// S 510x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// T 520x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// U 530x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,// V 540xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,// W 550x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,// X 560x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// Y 570x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,// Z 580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,// [ 590x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,// \ 600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,// ] 610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ^ 620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,// _ 630x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ` 640x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,// a 650x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,// b 660x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,// c 670x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,// d 680x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,// e 690x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// f 700x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,// g 710x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,// h 720x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// i 730x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,// j 740x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,// k 750x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// l 760x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,// m 770x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,// n 780x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// o 790x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,// p 800x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,// q 810x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,// r 820x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,// s 830x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,// t 840x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,// u 850x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,// v 860x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,// w 870x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,// x 880x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,// y 890x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,// z 900x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,// { 910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,// | 920x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,// } 930x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ~ 94
};
*///6*8的点阵
static const GUA_U8 GUA_F6x8[92][6] =
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 00x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 10x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 20x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 30x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 40x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 50x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 60x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 70x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 80x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 90x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 550x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};//字转数组
static void GUA_LCD_itoa(GUA_U32 uiNum, GUA_U8 *buf, GUA_U8 uiRadix)
{GUA_U8 c, i;GUA_U8 *p, rst[32];p = rst;for (i = 0; i < 32; i++, p++){/* Isolate a digit */c = uiNum % uiRadix;/* Convert to Ascii */*p = c + ((c < 10) ? '0' : '7');uiNum /= uiRadix;if (!uiNum)break;}for (c = 0; c <= i; c++){/* Reverse character order */*buf++ = *p--;}*buf = '\0';
}//字转数组
static GUA_U8 * GUA_LCD_ltoa(GUA_U32 l, GUA_U8 *buf, GUA_U8 radix)
{
#if defined (__TI_COMPILER_VERSION)return ( (GUA_U8*)ltoa( l, (GUA_C *)buf ) );
#elif defined( __GNUC__ )return ( (GUA_C*)ltoa( l, buf, radix ) );
#elseGUA_U8 tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";GUA_U16 num1, num2, num3;GUA_U8 i;buf[0] = '\0';if ( radix == 10 ){num1 = l % 10000;num2 = (l / 10000) % 10000;num3 = (GUA_U16)(l / 100000000);if (num3)GUA_LCD_itoa(num3, tmp3, 10);if (num2)GUA_LCD_itoa(num2, tmp2, 10);if (num1)GUA_LCD_itoa(num1, tmp1, 10);if (num3){strcpy((GUA_C*)buf, (GUA_C const*)tmp3);for (i = 0; i < 4 - strlen((GUA_C const*)tmp2); i++)strcat((GUA_C*)buf, "0");}strcat((GUA_C*)buf, (GUA_C const*)tmp2);if (num3 || num2){for (i = 0; i < 4 - strlen((GUA_C const*)tmp1); i++)strcat((GUA_C*)buf, "0");}strcat((GUA_C*)buf, (GUA_C const*)tmp1);if (!num3 && !num2 && !num1)strcpy((GUA_C*)buf, "0");}else if ( radix == 16 ){num1 = l & 0x0000FFFF;num2 = l >> 16;if (num2)GUA_LCD_itoa(num2, tmp2, 16);if (num1)GUA_LCD_itoa(num1, tmp1, 16);if (num2){strcpy((GUA_C*)buf,(GUA_C const*)tmp2);for (i = 0; i < 4 - strlen((GUA_C const*)tmp1); i++)strcat((GUA_C*)buf, "0");}strcat((GUA_C*)buf, (GUA_C const*)tmp1);if (!num2 && !num1)strcpy((GUA_C*)buf, "0");}elsereturn NULL;return buf;
#endif
}//LCD延时1ms
static void GUA_LCD_DLY_Ms(GUA_U32 ms)
{                         GUA_U32 a;while(ms){a=1800;while(a--);ms--;}return;
}//LCD写数据
static void GUA_LCD_WrDat(GUA_U8 dat)
{GUA_U8 i=8, temp=0;GUA_LCD_DC_1();for(i=0;i<8;i++){GUA_LCD_SCL_0();temp = dat&0x80;if (temp == 0){GUA_LCD_SDA_0();}else{GUA_LCD_SDA_1();}GUA_LCD_SCL_1();dat<<=1;    }
}//LCD写命令
static void GUA_LCD_WrCmd(GUA_U8 cmd)
{GUA_U8 i=8, temp=0;GUA_LCD_DC_0();for(i=0;i<8;i++){ GUA_LCD_SCL_0();temp = cmd&0x80;if (temp == 0){GUA_LCD_SDA_0();}else{GUA_LCD_SDA_1();}GUA_LCD_SCL_1();cmd<<=1;;        }
}//LCD设置坐标
static void GUA_LCD_Set_Pos(GUA_U8 x, GUA_U8 y)
{ GUA_LCD_WrCmd(0xb0+y);GUA_LCD_WrCmd(((x&0xf0)>>4)|0x10);GUA_LCD_WrCmd((x&0x0f)|0x01);
}//LCD全屏
static void GUA_LCD_Fill(GUA_U8 bmp_dat)
{GUA_U8 y,x;for(y=0;y<8;y++){GUA_LCD_WrCmd(0xb0+y);GUA_LCD_WrCmd(0x01);GUA_LCD_WrCmd(0x10);for(x=0;x<GUA_LCD_X_WIDTH;x++)GUA_LCD_WrDat(bmp_dat);}
}//行填充,y为页范围0~7
static void GUA_LCD_FillLine(GUA_U8 y,GUA_U8 ch)
{GUA_U8 x;GUA_LCD_WrCmd(0xb0+y);GUA_LCD_WrCmd(0x01);GUA_LCD_WrCmd(0x10);for(x=0;x<GUA_LCD_X_WIDTH;x++)GUA_LCD_WrDat(ch);
}/*
//LCD复位
static void GUA_LCD_CLS(void)
{GUA_U8 y,x;for(y=0;y<8;y++){GUA_LCD_WrCmd(0xb0+y);GUA_LCD_WrCmd(0x01);GUA_LCD_WrCmd(0x10);for(x=0;x<GUA_LCD_X_WIDTH;x++)GUA_LCD_WrDat(0);}
}
*///显示6*8一组标准ASCII字符串,显示的坐标(x,y),y为页范围0~7
static void GUA_LCD_P6x8Str(GUA_U8 x, GUA_U8 y,GUA_U8 ch[])
{GUA_U8 c=0,i=0,j=0;while (ch[j] != '\0'){c =ch[j]-32;if(x > 126){x=0;y++;}GUA_LCD_Set_Pos(x,y);if(c > 0 && c < 92){for(i=0;i<6;i++)GUA_LCD_WrDat(GUA_F6x8[c][i]);}x+=6;j++;}
}/*
//显示8*16一组标准ASCII字符串,显示的坐标(x,y),y为页范围0~7
static void GUA_LCD_P8x16Str(GUA_U8 x, GUA_U8 y,GUA_U8 ch[])
{GUA_U8 c=0,i=0,j=0;while (ch[j]!='\0'){c =ch[j]-32;if(x>120){x=0;y++;}GUA_LCD_Set_Pos(x,y);for(i=0;i<8;i++)GUA_LCD_WrDat(GUA_F8X16[c*16+i]);GUA_LCD_Set_Pos(x,y+1);for(i=0;i<8;i++)GUA_LCD_WrDat(GUA_F8X16[c*16+i+8]);x+=8;j++;}
}//显示16*16点阵 ,显示的坐标(x,y),y为页范围0~7
static void GUA_LCD_P16x16Ch(GUA_U8 x, GUA_U8 y, GUA_U8 N)
{GUA_U8 wm = 0;GUA_U32 adder = 32*N;GUA_LCD_Set_Pos(x , y);for(wm = 0;wm < 16;wm++){GUA_LCD_WrDat(GUA_F16x16[adder]);adder += 1;}GUA_LCD_Set_Pos(x,y + 1);for(wm = 0;wm < 16;wm++){GUA_LCD_WrDat(GUA_F16x16[adder]);adder += 1;}
}
*///**********************************************************************
//name:         GUA_LCD_Init
//introduce:    香瓜LCD驱动初始化
//parameter:    none
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
void GUA_LCD_Init(void)
{//IO初始化if(GUA_HlcdPins == NULL){GUA_HlcdPins = PIN_open(&GUA_LcdPins, GUA_LcdPinsCfg);}//初始化GUA_LCD_SCL_1();GUA_LCD_RST_0();GUA_LCD_DLY_Ms(250);GUA_LCD_RST_1();GUA_LCD_WrCmd(0xae);//--turn off oled panelGUA_LCD_WrCmd(0x00);//---set low column addressGUA_LCD_WrCmd(0x10);//---set high column addressGUA_LCD_WrCmd(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)GUA_LCD_WrCmd(0x81);//--set contrast control registerGUA_LCD_WrCmd(0xcf);// Set SEG Output Current BrightnessGUA_LCD_WrCmd(0xa1);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常GUA_LCD_WrCmd(0xc8);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常GUA_LCD_WrCmd(0xa6);//--set normal displayGUA_LCD_WrCmd(0xa8);//--set multiplex ratio(1 to 64)GUA_LCD_WrCmd(0x3f);//--1/64 dutyGUA_LCD_WrCmd(0xd3);//-set display offset    Shift Mapping RAM Counter (0x00~0x3F)GUA_LCD_WrCmd(0x00);//-not offsetGUA_LCD_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequencyGUA_LCD_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/SecGUA_LCD_WrCmd(0xd9);//--set pre-charge periodGUA_LCD_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 ClockGUA_LCD_WrCmd(0xda);//--set com pins hardware configurationGUA_LCD_WrCmd(0x12);GUA_LCD_WrCmd(0xdb);//--set vcomhGUA_LCD_WrCmd(0x40);//Set VCOM Deselect LevelGUA_LCD_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)GUA_LCD_WrCmd(0x02);//GUA_LCD_WrCmd(0x8d);//--set Charge Pump enable/disableGUA_LCD_WrCmd(0x14);//--set(0x10) disableGUA_LCD_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)GUA_LCD_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7)GUA_LCD_WrCmd(0xaf);//--turn on oled panelGUA_LCD_Fill(0x00); //初始成黑屏//设置偏移值GUA_LCD_Set_Pos(0,0);
}//**********************************************************************
//name:         GUA_LCD_WriteValue
//introduce:    香瓜LCD的写数据的函数
//parameter:    nGUA_Value:数据
//              nGUA_Format:10(10进制)或16(16进制)
//              nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
void GUA_LCD_WriteValue(GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line)
{GUA_U8 naGUA_Buf[GUA_LCD_MAX_BUF];GUA_LCD_ltoa(nGUA_Value, &naGUA_Buf[0], nGUA_Format);GUA_LCD_WriteString((GUA_C*)naGUA_Buf, nGUA_Line);
}//**********************************************************************
//name:         GUA_LCD_WriteString
//introduce:    香瓜LCD的写字符串的函数
//parameter:    pGUA_Str:字符串
//              nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
void GUA_LCD_WriteString(GUA_C *pGUA_Str, GUA_U8 nGUA_Line)
{GUA_LCD_FillLine(nGUA_Line, 0);GUA_LCD_P6x8Str(0, nGUA_Line, (GUA_U8 *)pGUA_Str);
}//**********************************************************************
//name:         GUA_LCD_WriteStringValue
//introduce:    香瓜LCD的写字符串带数据的函数
//parameter:    pGUA_Str:字符串
//              nGUA_Value:数据
//              nGUA_Format:10(10进制)或16(16进制)
//              nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
void GUA_LCD_WriteStringValue(GUA_C *pGUA_Str, GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line)
{GUA_U8 nGUA_Len;GUA_U8 naGUA_Buf[GUA_LCD_MAX_BUF] = {0};nGUA_Len = (GUA_U8)strlen( (GUA_C*)pGUA_Str);memcpy(naGUA_Buf, pGUA_Str, nGUA_Len);naGUA_Buf[nGUA_Len] = ' ';GUA_LCD_ltoa(nGUA_Value, &naGUA_Buf[nGUA_Len + 1], nGUA_Format);GUA_LCD_WriteString((GUA_C*)naGUA_Buf, nGUA_Line);
}//**********************************************************************
//name:         GUA_LCD_ClearLine
//introduce:    香瓜LCD的清除行的函数
//parameter:    nGUA_Line:GUA_LCD_LINE0~GUA_LCD_LINE7
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
void GUA_LCD_ClearLine(GUA_U8 nGUA_Line)
{GUA_LCD_FillLine(nGUA_Line, 0);
}

2)写一个LCD驱动头文件GUA_LCD.h(存放在“……\simplelink_cc2640r2_sdk_1_40_00_45\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\src\app\GUA”路径下)

//**********************************************************************
//name:         GUA_LCD.h
//introduce:    香瓜的LCD驱动的头文件
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
#ifndef _GUA_LCD_H_
#define _GUA_LCD_H_/*********************宏定义************************/
//类型宏
#ifndef GUA_C
typedef char GUA_C;
#endif#ifndef GUA_U8
typedef unsigned char GUA_U8;
#endif#ifndef GUA_8
typedef signed char GUA_8;
#endif#ifndef GUA_U16
typedef unsigned short GUA_U16;
#endif#ifndef GUA_16
typedef signed short GUA_16;
#endif#ifndef GUA_U32
typedef unsigned long GUA_U32;
#endif#ifndef GUA_32
typedef signed long GUA_32;
#endif#ifndef GUA_U64
typedef unsigned long long GUA_U64;
#endif#ifndef GUA_64
typedef signed long long GUA_64;
#endif//LCD的可写行
typedef enum
{GUA_LCD_LINE0 = 0,GUA_LCD_LINE1,GUA_LCD_LINE2,GUA_LCD_LINE3,GUA_LCD_LINE4,GUA_LCD_LINE5,GUA_LCD_LINE6,GUA_LCD_LINE7,GUA_LCD_LINE_COUNT
}GUA_LCD_LINE;/*********************函数声明************************/
extern void GUA_LCD_Init(void);
extern void GUA_LCD_WriteValue(GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line);
extern void GUA_LCD_WriteString(GUA_C *pGUA_Str, GUA_U8 nGUA_Line);
extern void GUA_LCD_WriteStringValue(GUA_C *pGUA_Str, GUA_U32 nGUA_Value, GUA_U8 nGUA_Format, GUA_U8 nGUA_Line);
extern void GUA_LCD_ClearLine(GUA_U8 nGUA_Line);#endif

2、工程中添加驱动文件GUA_LCD.c和GUA_LCD.h

注:拖拽至CCS工程的Application文件夹下

添加文件过程中,选项选择如下

3、应用层调用
1)添加头文件(simple_peripheral.c中)

//GUA
#include "GUA_LCD.h"
//GUA

2)添加初始化代码(simple_peripheral.c的SimpleBLEPeripheral_init函数末尾中)

//GUA//LCD初始化GUA_LCD_Init();//LCD测试GUA_LCD_WriteString("opengua", GUA_LCD_LINE0);              //写字符串GUA_LCD_WriteString("QQ Group:", GUA_LCD_LINE1);            //写字符串GUA_LCD_WriteValue(557278427, 10, GUA_LCD_LINE2);           //写数据GUA_LCD_WriteStringValue("GUA age:", 27, 10, GUA_LCD_LINE7);//写字符串+数据GUA_LCD_ClearLine(GUA_LCD_LINE7);                           //清除该行
//GUA

3)修改按键处理函数(替换simple_peripheral.c的GUA_HandleKeys函数)

//GUA
//**********************************************************************
//name:         GUA_HandleKeys
//introduce:    应用层按键处理函数
//parameter:    GUA_Keys:键值
//return:       none
//author:       甜甜的大香瓜
//email:        897503845@qq.com
//QQ group:     香瓜BLE之CC2640R2F(557278427)
//shop:
//https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
//changetime:   2017.10.28
//**********************************************************************
static void GUA_HandleKeys(uint8 GUA_Keys)
{//UP按键if(GUA_Keys & GUA_KEY_UP_VALUE){//LED1亮GUA_Led_Set(GUA_LED_NO_1, GUA_LED_MODE_ON);//蜂鸣器响GUA_Beep_Set(GUA_BEEP_MODE_ON);//LCD显示GUA_LCD_WriteString("UP is pressed", GUA_LCD_LINE7);//启动定时器Util_startClock(&GUA_periodicClock);}//DOWN按键if(GUA_Keys & GUA_KEY_DOWN_VALUE){//LED2亮GUA_Led_Set(GUA_LED_NO_2, GUA_LED_MODE_ON);//蜂鸣器响GUA_Beep_Set(GUA_BEEP_MODE_ON);//LCD显示GUA_LCD_WriteString("DOWN is pressed", GUA_LCD_LINE7);//启动定时器Util_startClock(&GUA_periodicClock);}//LEFT按键if(GUA_Keys & GUA_KEY_LEFT_VALUE){//LED3亮GUA_Led_Set(GUA_LED_NO_3, GUA_LED_MODE_ON);//蜂鸣器响GUA_Beep_Set(GUA_BEEP_MODE_ON);//LCD显示GUA_LCD_WriteString("LEFT is pressed", GUA_LCD_LINE7);//启动定时器Util_startClock(&GUA_periodicClock);}//RIGHT按键if(GUA_Keys & GUA_KEY_RIGHT_VALUE){//LED4亮GUA_Led_Set(GUA_LED_NO_4, GUA_LED_MODE_ON);//蜂鸣器响GUA_Beep_Set(GUA_BEEP_MODE_ON);//LCD显示GUA_LCD_WriteString("RIGHT is pressed", GUA_LCD_LINE7);//启动定时器Util_startClock(&GUA_periodicClock);}//SELECT按键if(GUA_Keys & GUA_KEY_SELECT_VALUE){//LED全亮GUA_Led_Set(GUA_LED_NO_ALL, GUA_LED_MODE_ON);//蜂鸣器响GUA_Beep_Set(GUA_BEEP_MODE_ON);//LCD显示GUA_LCD_WriteString("SELECT is pressed", GUA_LCD_LINE7);//启动定时器Util_startClock(&GUA_periodicClock);}
}
//GUA

每个按键都有对应的LCD显示。

八、注意事项

暂无

九、实验结果

仿真并全速运行,可以看到上电显示如下:

当按下五个不同按键时,会有对应的按键显示。其中“UP”键按键效果如下:

因此,LCD显示成功。

【CC2640R2F】香瓜CC2640R2F之LCD相关推荐

  1. CC2640R2F学习笔记(1)——搭建环境、编译烧写

    一.搭建环境 1.1 安装BLE5.0 协议栈 SDK 官网下载:http://www.ti.com/tool/download/SIMPLELINK-CC2640R2-SDK 百度网盘:https: ...

  2. CC2640R2F学习笔记(6)——UART串口使用

    一.硬件连接 串口 引脚 TXD DIO_2 RXD DIO_3 二.移植文件 链接:https://pan.baidu.com/s/1fE8XWgvdzYiF1bdUzTDxUg 提取码:r5s2 ...

  3. CC2640R2F学习笔记(7)——自定义服务和特征

    一.背景 1.1 Profile(规范) profile 可以理解为一种规范,一个标准的通信协议,它存在于蓝牙从机中(服务端): 蓝牙组织规定了一些标准的 profile,例如 HID OVER GA ...

  4. 关于CC2640R2F的OAD升级

    一.概念 1.什么是OAD升级 通过蓝牙对MCU进行空中升级. 2.什么是片外OAD升级 利用蓝牙将升级包下载到外部的flash中,然后再重启MCU,MCU启动后,再去外部的flash中读取升级包,最 ...

  5. CC2640R2F之基础--工程管理篇(下)--外设驱动IO口分配(纯干货)

    原创博客,如有转载,注明出处--在金华的电子民工林. 引言:基于上一篇说了如何建立一个新工程,管理一个新工程,现在面临着一个问题,我们技术人员接到一个项目,不同的应用,硬件也不同啊,外设,IO口的分配 ...

  6. CC2640R2F之NOTIFY发送子程序

    原创博客,如有转载,注明出处--在金华的电子民工林. 协议栈的程序,有些还是比较粗糙的,比如如何发送notify,协议栈给的程序,调用的一层又一层,其实可以省略掉不少步骤.现在分享给大家一个发送NOT ...

  7. CC2640R2F BLE5.0 CC2640R2F Evaluation Board功耗测量

    CC2640R2F Evaluation Board功耗测量 简介 蓝牙低耗能标准在开发过程中就考虑到了长电池寿命, 可支持器件依靠单节纽扣电池运行数年.我们假定读者对基本的电气功能概念有所了解, 并 ...

  8. CC2640R2F之central程序讲解(上)

    原创博客,如有转载,注明出处--在金华的电子民工林. 当初本人写在另外一个论坛上,现在移到这边来.希望帮到更多人. 本文采用的是CC2640R2F1.40协议栈版本.高阶版本可做参考. 做完一个cen ...

  9. 【BLE】TI CC2640R2F片内OAD实验

    一.概述 此文档用以记录CC2640R2F的片内OAD实验操作步骤 二.准备 名称 内容 SDK版本 simplelink_cc2640r2_sdk_1_30_00_25 硬件平台 CC2640R2F ...

  10. 【BLE】TI CC2640R2F SDK结构以及一些概念解析

    一.概述 CC2640R2F作为BLE单SOC解决方案, TI的SDK将工程分为应用程序(APP)和协议栈(Stack)两部分 二.协议栈 协议栈包括:主机(Host)和控制器(Controller) ...

最新文章

  1. python适合零基础学习吗-零基础,经济学专业,适合自学Python吗?
  2. mac connect to host localhost port 22: Connection refused
  3. Golang Study 二 UDP套接字使用
  4. 算法训练营03-数组链表
  5. 1000万存在银行,一年的利息够日常生活费吗?
  6. 电脑上我的文档图标不见了怎么办
  7. QGroupBox详解
  8. shellcode执行盒_简单shellcode学习
  9. appium 原理解析(转载雷子老师博客)
  10. vue 跨域请求js添加代码
  11. centos7安装tomcat9过程
  12. 骑士进化论RPG游戏实现
  13. 用form表单提交时,出现415错误
  14. Js逆向教程-05明确js逆向的目标
  15. PG Doc:17章1-3小节翻译
  16. 关于C语言的基本语法知识
  17. 看看这个和runjs类似的网站jsrun
  18. 如何提高深度学习预测准确率
  19. oracle v backup,睿备份oracle下载
  20. 软件接口趣事:业务和技术人员眼中五彩斑斓的黑

热门文章

  1. google scholar 使用不了的问题——已解决
  2. TongWeb卡、TongWeb卡、TongWeb卡卡卡
  3. Win11微软输入法打不出汉字怎么办?
  4. discuz php单页,Discuz! 单页制作教程
  5. pcs9000系统plat服务器,CSD361現场调试手册.docx
  6. 关于计算机听课如何做笔记,如何高效地听课记录笔记
  7. 《观沧海》课文练习题及答案
  8. 给Edge添加chrome主题
  9. Cousera Notebook 之 Python 备份记录
  10. opencv保存设像头图片时调整白平衡功能