stm32在OLED上实现显示
了解SPI
SPI 物理层
SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO
协议层
SPI 基本通讯过程
SPI工作模式
显示静态名字
连接方式
主要程序
int main(void) { delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); //初始化OLED OLED_Clear(0); //清屏(全黑) while(1) { TEST_MainPage();
? }`
}
void TEST_MainPage(void) {
GUI_ShowCHinese(28,20,16,"李某人",1);
//GUI_ShowString(40,32,"64X128",16,1);
GUI_ShowString(4,48,"631907030712",16,1);
//GUI_ShowString(4,48,"www.lcdwiki.com",16,1);
delay_ms(1500);
delay_ms(1500);
}
汉字取模,放在oledfont.h中
结果
显示滚动字幕
主要程序
void TEST_MainPage(void) { GUI_ShowCHinese(10,20,16,“欢迎来到重庆交通大学物联网实训室”,1);
delay_ms(1500);
delay_ms(1500);
}
int main(void) { delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); //初始化OLED OLED_Clear(0); //清屏(全黑) OLED_WR_Byte(0x2E,OLED_CMD); //关闭滚动 OLED_WR_Byte(0x27,OLED_CMD); //水平向左或者右滚动 26/27 OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节 OLED_WR_Byte(0x00,OLED_CMD); //起始页 0 OLED_WR_Byte(0x07,OLED_CMD); //滚动时间间隔 OLED_WR_Byte(0x07,OLED_CMD); //终止页 7 OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节 OLED_WR_Byte(0xFF,OLED_CMD); //虚拟字节 TEST_MainPage(); OLED_WR_Byte(0x2F,OLED_CMD); //开启滚动 while(1) }
然后汉字取模
用OLED显示温度
主要代码和用I2C差不多
总结
这次实验熟悉了OLED的使用,也了解SPI通信方式。
|