前面介绍了用串口来输出气压传感器LPS27HHW的值,但作为一个检测装置的话若仅凭串口来输出信息是很不足的,为此我们可以为它配上一个OLED屏来直接显示检测值,这样更适合做一种产品的设计。
该显示屏是一款单色的0.91'的OLED屏,使用I2C接口来工作,为便于在任意的引脚来使用,故采用I/O模拟I2C的方式来实现。
由于STM32F411开发板带有Arduino接口,自然最好的使用方式就是利用该接口上离电源引脚最近的PA5和PA6。唯一奇葩的是现在的OLED屏非弄个GND在先,让本可以不用连线的用法就此夭折,只好用插线来交换线序,其实现效果如图1所示。
图1 OLED屏实现方式
实现数值模拟显示的效果如图2所示,其主程序为:
图2 模拟数值显示
int main(void)
{
int pres=1000,temp=21;
HAL_Init();
/* Configure the system clock to 100 MHz */
SystemClock_Config();
APP_OLED_Init();
OLED_Init();
OLED_Clear();
OLED_ShowString(8,0,"STM32F411RE",16);
OLED_ShowString(8,2,"OLED & LPS27HHW",16);
OLED_ShowCHinese(80,0,0);
OLED_ShowCHinese(96,0,1);
OLED_ShowCHinese(112,0,2);
HAL_Delay(1000);
HAL_Delay(1000);
OLED_Clear();
OLED_ShowString(8,0,"pres= hPa",16);
OLED_ShowString(8,2,"temp= degC",16);
OLED_ShowNum(48,0,pres,5,16);
OLED_ShowNum(48,2,temp,5,16);
while (1);
}