在线时间1537 小时
UID258281
注册时间2014-12-6
NXP金币0
TA的每日心情 | 开心 2020-1-12 00:23 |
---|
签到天数: 745 天 [LV.9]以坛为家II
金牌会员
- 积分
- 6868
- 最后登录
- 2020-7-15
|
本次实验是驱动SPI接口的0.96寸OLED模块。
一、实验资源
1、LPC11U68(OM13058)开发板;
2、KEIL V5.25.2.0;
3、lpcopen_3_03_keil_iar_lpcxpresso_11u68;
4、0.96寸OLED模块;
二、实验过程
1、硬件连接:模块引出的D0、D1、RST、DC分别与开发板上J7的PIO0_14、PIO0_12、PIO0_13和PIO0_11相连接,CS直接接在了GND上;
2、程序实现:为便于操作做了端口宏定义并对端口进行初始化;对OLED的操作函数都是源自于网络;
- #define OLED_RST_Clr() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 13, 0)//RES
- #define OLED_RST_Set() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 13, 1)
- #define OLED_DC_Clr() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 11, 0)//DC
- #define OLED_DC_Set() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 11, 1)
- #define OLED_SCLK_Clr() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 14, 0)//SCLK/D0
- #define OLED_SCLK_Set() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 14, 1)
- #define OLED_SDIN_Clr() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 12, 0)//SDIN/D1
- #define OLED_SDIN_Set() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 12, 1)
复制代码- void OLED_Port_Init(void)
- {
- Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO);//GPIO时钟使能
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 11);//设置PIO0_11端口为输出
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 12);//设置PIO0_12端口为输出
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 13);//设置PIO0_13端口为输出
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 14);//设置PIO0_14端口为输出
- Chip_GPIO_SetPinDIROutput(LPC_GPIO, 2, 18);//设置PIO2_17端口为输出
- Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 11, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
- Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 12, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
- Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 13, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
- Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 14, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
- }
复制代码 在主函数中对OLED显示内容进行更新:
- int main(void)
- {
- SystemCoreClockUpdate();
- delay_init();
- OLED_Init();
- OLED_Clear();
-
- OLED_ShowString(12,0,"www.nxpic.org.cn");
- OLED_ShowCHinese(24,2,0);
- OLED_ShowCHinese(40,2,1);
- OLED_ShowCHinese(56,2,2);
- OLED_ShowCHinese(72,2,3);
- OLED_ShowCHinese(88,2,4);
- OLED_ShowString(0,4,"LPCXpresso Board");
- OLED_ShowString(12,6,"LPC11U68 OLED");
- while(1)
- {
- }
- }
复制代码
3、实验结果
三、实验总结
本次实验比较简单,代码在开发板上移植也很方便。在此感谢代码原作者!
|
|