使用STM32F103的SPI或IIC接口实现OLED屏显示各种内容 |
您所在的位置:网站首页 › SPI的工作原理 › 使用STM32F103的SPI或IIC接口实现OLED屏显示各种内容 |
一、任务
理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能: 显示自己的学号和姓名;显示AHT20的温度和湿度;上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(使用硬件刷屏模式)。PCtoLCD2002生成字模以及软件的下载请看以下链接内容 https://blog.csdn.net/weixin_51755670/article/details/118076488?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-118076488-blog-123810825.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.3&utm_relevant_index=7 二、SPI(串行外设接口)SPI(Serial Peripheral Interface)就是串行外围设备接口。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。 SPI的通讯过程
SPI 总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输出线MOSI,一条数据输入线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束 中断标志;写冲突保护;总线竞争保护等。下图示出SPI总线工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式 (实线表示): 1、下载程序 http://www.lcdwiki.com/res/Program/OLED/0.96inch/SPI_SSD1306_MSP096X_V1.0/0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0.zip2、打开资料包,选择与自己平台相同的实例,打开Demo的工程,使用keil编译 3、连接显示屏和开发板 1、打开文字取模工具
修改main函数 int main(void) { delay_init(); //延时函数初始化 OLED_Init(); //初始化OLED OLED_Clear(0); //清屏(全黑) while(1) { TEST_MainPage(); //界面显示 } }效果展示 在上一篇博客AHT20采集温湿度的代码上添加OLED显示的相关代码 相关文件后面会给出链接。 1、文字取模 修改bsp_i2c.c文件中的read_AHT20函数 void read_AHT20(void) { uint8_t i; for(i=0; i H1 = readByte[1]; H1 = (H1 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); //开启滚动 }修改显示函数TEST_MainPage void TEST_MainPage(void) { GUI_ShowCHinese(10,20,16,"人这种卑鄙的东西,什么都会习惯的",1); delay_ms(1500); delay_ms(1500); }效果展示 在参考文件的帮助下完成OLED屏显示各种内容没什么问题,但还是需要进一步了解协议内容。 参考链接https://blog.csdn.net/qq_43279579/article/details/111414037 源代码: https://github.com/aichicaomeide/hello |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |