发新帖我要提问
12
返回列表
打印
[其他ST产品]

STM32+OLED屏显应用实例

[复制链接]
楼主: l63t89
手机看帖
扫描二维码
随时随地手机跟帖
21
l63t89|  楼主 | 2023-3-27 10:21 | 只看该作者 回帖奖励 |倒序浏览
主函数main.c文件:
#include "delay.h"
#include "usart.h"
#include "bsp_i2c.h"
#include "sys.h"

#include "oled.h"
#include "gui.h"
#include "test.h"

int main(void)
{       
        delay_init();                           //延时函数初始化              
        uart_init(115200);         
        IIC_Init();
                  
        NVIC_Configuration();            //设置NVIC中断分组2:2位抢占优先级,2位响应优先级        
        OLED_Init();                                 //初始化OLED  
        OLED_Clear(0);
        while(1)
        {
                //printf("温度湿度显示");
                read_AHT20_once();
                OLED_Clear(0);
                delay_ms(1500);
  }
}

使用特权

评论回复
22
l63t89|  楼主 | 2023-3-27 10:21 | 只看该作者
六、STM32+OLED上下或左右的滑动显示长字符
1、滚屏设置

水平左右移动
OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动
OLED_WR_Byte(0x26,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);        //虚拟字节
OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动

使用特权

评论回复
23
l63t89|  楼主 | 2023-3-27 10:21 | 只看该作者
垂直和水平滚动
OLED_WR_Byte(0x2e,OLED_CMD);        //关闭滚动
OLED_WR_Byte(0x29,OLED_CMD);        //水平垂直和水平滚动左右 29/2a
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);        //终止页 1
OLED_WR_Byte(0x01,OLED_CMD);        //垂直滚动偏移量
OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动

使用特权

评论回复
24
l63t89|  楼主 | 2023-3-27 10:22 | 只看该作者
2、代码撰写

添加文字字模代码oledfont.h文件
在test.c中写入OLED显示函数TEST_MainPage:
void TEST_MainPage(void)
{       

        GUI_ShowCHinese(10,20,16,"考研顺利上岸",1);
       
        //GUI_ShowString(40,32,"64X128",16,1);
        //GUI_ShowString(4,48,"www.lcdwiki.com",16,1);*/
        delay_ms(500);               
        delay_ms(500);
}

使用特权

评论回复
25
l63t89|  楼主 | 2023-3-27 10:22 | 只看该作者
主函数main.c文件:
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
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);        //开启滚动
}

使用特权

评论回复
26
l63t89|  楼主 | 2023-3-27 10:22 | 只看该作者
七、总结

通过上面三个实验基本掌握了STM32+OELD的操作显示,也了解了SPI的相关知识。注意OELD显示时要对字长进行设置,否则显示会有问题。OLED是一个很常用的外设,在很多的硬件的项目中运用广泛,掌握其使用能对之后的硬件项目大有裨益。总的来说本次实验让我受益匪浅!

使用特权

评论回复
27
l63t89|  楼主 | 2023-3-27 10:22 | 只看该作者
八、参考资料

https://blog.csdn.net/qq_43279579/article/details/111414037
https://blog.csdn.net/qq_46467126/article/details/121439142?spm=1001.2014.3001.5502

使用特权

评论回复
28
童雨竹| | 2024-4-22 08:18 | 只看该作者

如果防护与热设计欠佳

使用特权

评论回复
29
公羊子丹| | 2024-4-22 11:17 | 只看该作者

缩合型灌封硅胶由于固化过程有体积收缩一般不使用在模块电源的灌封中

使用特权

评论回复
30
万图| | 2024-4-22 12:20 | 只看该作者

在交流电频率一定情况下,电感量越大,其对交流电阻碍能力越大

使用特权

评论回复
31
帛灿灿| | 2024-4-22 15:19 | 只看该作者

电路的结构类似于全桥式,只是把其中的两只开关管(T3、T4)换成了两只等值大电容C1、C2。

使用特权

评论回复
32
周半梅| | 2024-4-22 18:18 | 只看该作者

脉冲变压器磁能被积累的问题容易解决,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则