【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:liufei191010@126.com】
使用的OLED型号为:HGS256642
它的应用电路如下
属于四线SPI通信方式,但是它的MISO端口没有被接出来,所以spi的读取是不用实现的,但是又多出来一条线(RS),这个端口的作用是为OLED进行写命令或者写数据的控制。
时序如下所示:
spi控制时序如下:
由于基于的linux版本为3.2.0,并且这个驱动非常简单,所以使用独立的模块式的驱动编写方法,而没有使用linux提供的总线设备驱动框架的驱动编写方式,代码如下(其中包含了gpio的测试代码):
//oledspi.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <linux/platform_device.h>
#include <linux/poll.h>
#include <linux/leds.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/types.h>
#include <mach/gpio.h>
#include <plat/mux.h>
#include <linux/gpio.h>
#define STATUS_SUCCESS 0
#define STATUS_FAILURE -1
static struct class *oledspi_class;
static struct device *oledspi_class_dev;
static int major;
static unsigned char TxBuf[24] =