标题: 新手请问单片机0.96 OLED显示问题 [打印本页]

作者: lscvavae    时间: 2023-7-21 22:37
标题: 新手请问单片机0.96 OLED显示问题
请问 把OLED显示函数 放在while(1)里不能显示是什么原因?
放在循环外面可以正常显示,加了延迟也不行

int main(void)
{
        EXTI_LightSensor_Init();
        
        OLED_Init();
        OLED_ShowNum(1, 1, 123456789, 10);    //   这都可以
        OLED_ShowString(4, 1, "Count:");          //   正常显示数据
        
        while(1)
        {
                OLED_ShowNum(4, 7, Count_LightSensor_Get(),3);   //这里直接不显示了,挪到上面就可以正常显示

         }
}


作者: xuyaqi    时间: 2023-7-22 06:32
把要显示的内容传给OLED,OLED自己会处理显示,不用像LED数码管不停重复输入。
作者: zhuls    时间: 2023-7-22 08:47
OLED_ShowNum(1, 1, 123456789, 10);    //   这都可以??
作者: lscvavae    时间: 2023-7-22 11:48
zhuls 发表于 2023-7-22 08:47
OLED_ShowNum(1, 1, 123456789, 10);    //   这都可以??

一句话我分成了两行了。。。
作者: lscvavae    时间: 2023-7-22 11:54
xuyaqi 发表于 2023-7-22 06:32
把要显示的内容传给OLED,OLED自己会处理显示,不用像LED数码管不停重复输入。

请问应该怎么写啊?
我是看的B站江科大的教学视频,他把这一段放在while循环里是可以正常显示中断次数的,不同的是,他用的是4针脚i2c的屏幕,我用的是7针脚spi
作者: yzwzfyz    时间: 2023-7-22 14:30
显示后,延时1S,再试试。
作者: iamluckman    时间: 2023-7-22 16:07
内容更新太快,上一个演员还没露脸下一个演员就把他下来了
作者: mtt661    时间: 2023-7-23 00:02
先把Count_LightSensor_Get()这个函数改成123,如果能正常显示,就说明这个函数没有返回值或者刷新太快了。一步一步调试。
作者: OooWee    时间: 2023-7-23 01:25
while(1)
        {
                OLED_ShowNum(4, 7, Count_LightSensor_Get(),3);   //这里直接不显示了,挪到上面就可以正常显示

         }
这里面不能直接放函数Count_LightSensor_Get(),放函数刷新太快,你可以定义一个变量temp,用temp接收这个函数,再显示temp就行了
int temp;
while(1)
        {
                temp=Count_LightSensor_Get();
                OLED_ShowNum(4, 7, temp,3);   //这里直接不显示了,挪到上面就可以正常显示

         }
作者: zsyzdx    时间: 2023-7-24 09:48
能加一个串口打印,确认一下单片机是不是死机了?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1