stm32在OLED上实现显示
了解SPI
SPI 物理层
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ewvoe7vz-1637849325268)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125213831692.png)]](https://img-blog.csdnimg.cn/900cb1df0fac4c63bc8700791ec92f4f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO
协议层
SPI 基本通讯过程
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QQuvT7xq-1637849325270)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125213913162.png)]](https://img-blog.csdnimg.cn/aaaaa830b26c4253b979cc25b78177cf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
SPI工作模式
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R7R4QsML-1637849325272)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125214015194.png)]](https://img-blog.csdnimg.cn/d509ee0dedab494e95c40212d3edad71.png)
显示静态名字
连接方式
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JF7bLdpl-1637849325274)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125214206281.png)]](https://img-blog.csdnimg.cn/d3ba4bad5f814841ab3b7cf492bbb0bf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
主要程序
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中
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YRE6uAM-1637849325275)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125214609907.png)]](https://img-blog.csdnimg.cn/dfbab2f2d0494b6d8c51a75661fb899a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdy81DLg-1637849325276)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125214625876.png)]](https://img-blog.csdnimg.cn/15a7eb44cfbe420a8b79488012086127.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
结果
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0rn3Nsg5-1637849325276)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125215047755.png)]](https://img-blog.csdnimg.cn/15367c2e724146258c4e04e815951cb6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
显示滚动字幕
主要程序
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) }
然后汉字取模
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDfp1Zhx-1637849325277)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125215658968.png)]](https://img-blog.csdnimg.cn/12c7073186ef4c1caa44e523e05590f3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
用OLED显示温度
主要代码和用I2C差不多
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tXclEJyA-1637849325278)(C:\Users\无\AppData\Roaming\Typora\typora-user-images\image-20211125215906193.png)]](https://img-blog.csdnimg.cn/a52dc1c3df2e45ecbccc29054d1b4a73.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZ2ppc2g=,size_20,color_FFFFFF,t_70,g_se,x_16)
总结
这次实验熟悉了OLED的使用,也了解SPI通信方式。
|