ble学习笔记四---------------------控制lcd

本文档详细介绍了如何使用CC2540微控制器驱动LCD12864显示器,包括初始化、清屏、设置起始位置、写入数据等步骤。通过设置时钟源、配置SPI接口和控制信号,实现了LCD12864的控制。同时,提供了延时函数和晶振启动函数,确保了时序的正确性。
摘要由CSDN通过智能技术生成

--------------------------------------------------控制lcd

查看lcd12864手册

JLX12864G-086 可以显示 128 列*64 行点阵单色图片

查看原理图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

对照以上两图可以得出以下对应


LCD指令表


查看指令表,整理指令

 

Lcd的一般操作

初始化

清屏

设置起始位置

写入数据显示图象

 

 

 

 

 

 

首先要将系统时钟切换到32M的处部晶振,为了自由配置所需要的时钟,借助CLKCONCMD.OSC选择系统主时钟,借助CLOKCONCMD.OSC32K用于选择芯片32K时钟源

低功耗模式设置时,需要SLEEPCMD寄存器

在《CC253x-CC2540-41ApplicationsUser's Guide.pdf》中并没有说明SLEEPCMD第二位功能

需下载cc2430芯片的说明书??

查看用户手册

 

 

需下载cc2430芯片的说明书??

 

其中第6位XOSC_STB表明外部高速32M晶振是否上电并稳定起振,当稳定时该位为1

第5位HFRC_STB则表明内部16MHz高速RC振荡器是否起振,并是否稳定,当16MHz RC振荡器稳定时该位为1

 

 

 CLKCONCMD 

 

 

 


 

CLKCONSTA

 

 

 

 

 

 

以上寄存器在iocc2540.h头文件中定义

 

 

 

 

 

 

 

 

 

创建工程,如同之前的创建方式,不同的有以下地方

 

 

 

 

创建公共函数头文件

/******************************************************************************

 

                  版权所有 (C), 2014-2020

 

 ******************************************************************************

  文 件 名  : common.h

  版 本 号  : V1.0

  作   者   : retacn

  生成日期   : 2014年9月13日

  功能描述   : 公共头文件

  函数列表   :

  修改历史   :

  1.日   期   : 2014年9月13日

    作   者   : retacn

    修改内容   : 创建文件

 

******************************************************************************/

 

#ifndef __COMMON_H__

#define __COMMON_H__

 

/*----------------------------------------------*

 * 包含头文件                                   *

 *----------------------------------------------*/

#include <stdio.h>

 

 

#ifndef BV

   #define BV(n)      (1 <<(n))

#endif

#define    st(x)      do { x } while(__LINE__ == -1)

 

 

// IO控制

#define HAL_IO_SET(port, pin, val)              HAL_IO_SET_PREP(port, pin, val)

#define HAL_IO_SET_PREP(port, pin,val)         st( P##port##_##pin## = val;)

 

#define HAL_CONFIG_IO_OUTPUT(port, pin,val)      HAL_CONFIG_IO_OUTPUT_PREP(port,pin, val)

#define HAL_CONFIG_IO_OUTPUT_PREP(port,pin, val) st( P##port##SEL &= ~BV(pin); \

                                                     P##port##_##pin## = val; \

                                                     P##port##DIR |= BV(pin); )

 

#define HAL_CONFIG_IO_PERIPHERAL(port,pin)      HAL_CONFIG_IO_PERIPHERAL_PREP(port, pin)

#define HAL_CONFIG_IO_PERIPHERAL_PREP(port,pin) st( P##port##SEL |= BV(pin); )

 

/* SPI settings */

#define HAL_SPI_CLOCK_POL_LO        0x00

#define HAL_SPI_CLOCK_PHA_0         0x00

#define HAL_SPI_TRANSFER_MSB_FIRST  0x20

 

//#define     NULL            (void*)0

 

/*----------------------------------------------*

 * 数据类型                                     *

 *----------------------------------------------*/

typedef signed   char  int8;     //!< Signed 8 bitinteger

typedef unsigned char   uint8;   //!< Unsigned 8 bit integer

 

typedef signed   short int16;    //!< Signed 16 bitinteger

typedef unsigned short  uint16;  //!< Unsigned 16 bit integer

 

typedef signed   long  int32;    //!< Signed 32 bitinteger

typedef unsigned long   uint32;  //!< Unsigned 32 bit integer

 

typedef unsigned char   bool;    //!< Boolean data type

 

#ifdef __cplusplus

#if __cplusplus

extern "C"{

#endif

#endif /* __cplusplus */

/*软件延时*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值