这里使用的是IIC接口的OLED。0.96 寸 OLED 屏幕模块包括一个 0.96 英寸的 OLED 显示屏和四个引脚。
0.96OLED 参数:
驱动芯片:SSD1306
分辨率:128 × 64
显示尺寸:0.96英寸
外形尺寸:27.5 × 27.8(mm)
玻璃尺寸:26.7 × 19.26 × 1.4(mm)
显示区域:21.74(W)× 10.864(mm)
视角:全视角
工作电压:3.3V ~ 5V
工作温度:-20℃ ~ 70℃
存储温度:-30℃ ~ 80℃
使用寿命:>=16000 小时
支持接口:I2C
驱动代码是卖家提供的,直接用来修改的。这里就不再粘贴了,某宝上随便一个卖家就有,使用模拟iic驱动的。
在APM32E030_SDK_V1.0.3\Examples\BOARD_APM32E030_TINY\GPIO\GPIO_Toggle基础上,增加一个BSP文件夹用来保存OLED的驱动代码。
添加BSP的路径。
这里使用的PB8和PB9两个引脚。
- #define OLED_SCLK_Pin GPIO_PIN_8
- #define OLED_SCLK_GPIO_Port GPIOB
- #define OLED_SDIN_Pin GPIO_PIN_9
- #define OLED_SDIN_GPIO_Port GPIOB
- //-----------------OLED IIC端口定义----------------
-
- #define OLED_SCLK_Clr() GPIO_ClearBit(OLED_SCLK_GPIO_Port,OLED_SCLK_Pin )//SCL 拉低
- #define OLED_SCLK_Set() GPIO_SetBit(OLED_SCLK_GPIO_Port,OLED_SCLK_Pin ) //SCL 拉高
-
- #define OLED_SDIN_Clr() GPIO_ClearBit(OLED_SDIN_GPIO_Port,OLED_SDIN_Pin )//SDA 拉低
- #define OLED_SDIN_Set() GPIO_SetBit(OLED_SDIN_GPIO_Port,OLED_SDIN_Pin ) //SDA 拉高
配置引脚为输出
- GPIO_Config_T gpioConfig;
- RCM_EnableAHBPeriphClock(OLED_SCLK_Pin | OLED_SDIN_Pin);
- /* OLED_SCLK_Pin GPIO configuration */
- gpioConfig.pin = OLED_SCLK_Pin;
- gpioConfig.mode = GPIO_MODE_OUT;
- gpioConfig.outtype = GPIO_OUT_TYPE_PP;
- gpioConfig.speed = GPIO_SPEED_50MHz;
- gpioConfig.pupd = GPIO_PUPD_PD;
- GPIO_Config(OLED_SCLK_GPIO_Port, &gpioConfig);
- /* OLED_SDIN_Pin GPIO configuration */
- gpioConfig.pin = OLED_SDIN_Pin;
- GPIO_Config(OLED_SDIN_GPIO_Port, &gpioConfig);
在main函数驱动:
- OLED_Init();//初始化显示屏
- OLED_Clear();
- OLED_ShowString(0,0,(unsigned char*)"hello,GEEHY",16,1);//显示系统开始界面
- OLED_ShowString(0,16,(unsigned char*)"hello,21ic",24,1);
- OLED_ShowStringCN1(0,40,(unsigned char*)"自动",1);
来看看效果
|