在线时间116 小时
UID3123257
注册时间2016-10-11
NXP金币0
TA的每日心情 | 奋斗 2017-1-18 20:00 |
---|
签到天数: 45 天 连续签到: 1 天 [LV.5]常住居民I
高级会员

- 积分
- 533
- 最后登录
- 2024-11-23
|
LPC824驱动中景园电子0.95寸OLED模块SSD1331
前几天买了两块OLED显示屏,这两天正好利用肖总送的LPC824 Breakout进行驱动。下面是SSD1331的引脚说明:
1:GND
2:VCC(3.3V、5V均可)
3:SCL(时钟)
4:SDA(数据)
5:RES(RST复位)
6:DC(数据/命令)
7:CS(片选)
该OLED 是一个0.95寸OLED 显示屏96*64OLED模块 全彩色高清OLED,采用SPI通信
了解了引脚及通信方式,就是给OLED分配引脚了,下面是我分配的引脚:
// GND 地
// VCC 5V或3.3V
// D0 P0_24(CLK)
// D1 P0_8MOSI
// RES P0_26
// DC P0_15
// CS P0_27
我这里采用的是模拟SPI,开始MOSI分配的是P0_25,不知道怎么回事MOSI引脚电平不会变化,所以改成了P0_8,后面再查一查什么情况。
引脚分配完成后就是写程序了,首先是设置引脚的高低电平的代码,程序如下:
- //-----------------OLED¶Ë¿Ú¶¨Òå----------------
- #define OLED_CS_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 27, 0) //0
- #define OLED_CS_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 27, 1); //1
- #define OLED_RST_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 26, 0) //0
- #define OLED_RST_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 26, 1) //1
- #define OLED_DC_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 15, 0) //0
- #define OLED_DC_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 15, 1) //1
- #define OLED_SCLK_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 24, 0) //0
- #define OLED_SCLK_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 24, 1) //1
- #define OLED_SDIN_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 8, 0) //0
- #define OLED_SDIN_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 8, 1) //1
复制代码 接下来就是初始化I/O引脚,这里的I/O设置的都是输出:
- void OLED_PIN_Init(void)
- {
- Chip_GPIO_Init(LPC_GPIO_PORT);
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 24, 1); //ÉèÖÃΪÊä³ö
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 8, 1);
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 26, 1);
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 15, 1);
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 27, 1);
- }
复制代码
设置完引脚后其他程序参考官方给的例程基本就完成了,下面贴上源代码:
给一张结果图:
|
|