• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

7脚OLED屏幕Atmega644pa编程SPI,屏幕无显示

55da1e2a4ec46a28 2018-11-15 浏览量:2059
收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 先吐槽下,社区发帖老是被偷逗号

    看了下,您的函数OLED_Display8x16Charactor只能输出一个字符,它不能用于输出字符串。可以增加一个函数:

    OLED_Display8X16String(int x,int y,char * str)

    {

        while(*str != '\0'){  //检查字符串是否结束

           OLED_Display8x16Charactor(x,y,*str);

            x+=8; //请自行添加代码解决超出屏幕及换行问题

        }

    }

    调用时:

    OLED_Display8X16String(1,2,"Input(V):");

    --------------------------------------------------------------

    然后重看了下OLED_Display8x16Charactor函数,感觉有点疑问

    OLED屏x取值是0~127,y取值是0~7(也称作页)

    如果您是横屏使用的话,函数应该这样写吧?

    void OLED_Display8x16Charactor(unsigned char ucx,unsigned char ucy,char *p) //在指定位置上显示一个8x16字符
    {

        unsigned char i,j;
        for(j = 0;j < 2;j++)
         {

            OLED_SetAddr(ucx,ucy+j);
             for(i = 0;i < 16;i++)
             {
                 OLED_SendData(*p++);
             }
         }
    }

    • 发布于 2018-11-16
    • 举报
    • 评论 1
    • 0
    • 0
55da1e2a4ec46a28 回复了 Spirit:您好,添加了OLED_Display8X16String(int x,int y,char * str) { while(*str != '\0'){ //检查字符串是否结束 OLED_Display8x16Charactor(x,y,*str); x+=8; //请自行添加代码解决超出屏幕及换行问题 } }这个函数了,在main.c中调用OLED_Display8X16String(1,2,"Input(V):");后,屏幕没有显示。请问是怎么回事?(我还没有添加代码解决超出屏幕及换行问题,但是应该不至于屏幕完全不亮才对) 回复

其他答案 数量:8
  • 从你的引脚配置看,应该是IIC接口的OLED屏

    但从

    OLED_SendCommand和OLED_SendData上根本看不出是IIC的时序

    如果说是SPI的话,感觉也不对劲

    建议先确定OLED是哪种通讯方式

    然后再学习下对应的驱动


    • 发布于2018-11-15
    • 举报
    • 评论 1
    • 0
    • 0
Spirit 回复了  :补答一波 回复

  • 底层驱动问题,你用卖家给的驱动试试,必须先把底层驱动搞定在写上层
    • 发布于2018-11-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 换一个oled驱动库吧,你这个的显示可能有点问题
    • 发布于2018-11-17
    • 举报
    • 评论 2
    • 0
    • 0
55da1e2a4ec46a28 回复了 奇迹12 :请问怎么换驱动库? 回复
奇迹12 回复了 55da1e2a4ec46a28 :网上很多oled的驱动的,特别是tb,而且很多都是通过模拟spi来实现,对应一下io控制就可以了 回复

  • 看一下是否这个API的使用方式不正确,导致显示异常
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 既然是用spi接口,那你可以先把spi的发送和接收回环接一下,能正常收发再接屏幕。
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 先测试一下SPI接口是不是正常的通讯的,再看看寄存器配置吧
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要先确认一下你的SPI数据,最好是用逻辑分析仪测量数据
    • 发布于2018-12-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 重新配置你的驱动代码,有可能是初始化代码的问题
    • 发布于2018-12-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

7脚OLED屏幕Atmega644pa编程SPI,屏幕无显示