完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1、摘要 本章节主要有两个部分组成: *一个是OLED屏幕的显示,关于OLED的资料有挺多的,CSDN中也有许多大佬做了比较详细的介绍,所以本章节并不会很深入地去讲解代码,只是会稍微提一下,如果大家有需要我写一个比较详细地介绍的话,也可以在评论区提出,我有时间就会写一下的。 另一个是用cJSON去解读心知天气返回的数据包。 2、硬件准备 硬件和上章节差不多,只是多了一个OLED屏幕,这里我使用的是0.96寸I2C驱动的OLED屏幕。 2.1、商品链接 最小系统板:购买链接 USB转TTL(种类有点多,随便选一个就行,我用的是CH340这个芯片的):购买链接 ESP8266:购买链接 OLED(我用的是0.96寸4针,I2C接口):购买链接 ST-Link V2下载线:购买链接 3、软件准备 Keil编译器 VSCode编译器 XCOM串口调试助手 这边附上另一篇文章,大家可以参考学习一下 STM32----使用VSCode编写Keil 4、硬件连线 [tr]MCUESP8266[/tr]
5、代码解析 5.1、OLED代码分析 参考其他博主写的技术论文 OLED显示屏:关于基于stm32的0.96寸oled显示屏的学习理解心得。 本实验使用的OLED是基于I2C通信的。所以最主要的内容有: 发送从机地址(0x78),再发送命令字节,接着发送数据字节。 /********************************************** // IIC Write Command **********************************************/ void Write_IIC_Command(unsigned char IIC_Command) { IIC_Start(); Write_IIC_Byte(0x78); //Slave address,SA0=0 IIC_Wait_Ack(); Write_IIC_Byte(0x00); //write command IIC_Wait_Ack(); Write_IIC_Byte(IIC_Command); IIC_Wait_Ack(); IIC_Stop(); } /********************************************** // IIC Write Data **********************************************/ void Write_IIC_Data(unsigned char IIC_Data) { IIC_Start(); Write_IIC_Byte(0x78); //D/C#=0; R/W#=0 IIC_Wait_Ack(); Write_IIC_Byte(0x40); //write data IIC_Wait_Ack(); Write_IIC_Byte(IIC_Data); IIC_Wait_Ack(); IIC_Stop(); } 根据这三个主要的内容,我们可以设置OLED显示器的显示样式。主要用到的代码有: 显示字符串函数、显示汉字函数 /********************************** 显示一个字符串 输入数据: x----x轴 y----y轴 *chr----字符串 Char_Size----大小(16/12) **********************************/ void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size) { unsigned char j=0; while (chr[j]!=' |