OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3741|回复: 3

LCD_Color_Fill()函数导致的黑屏

[复制链接]

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2017-7-12 14:20:31 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 学习stm32f4 于 2017-7-12 19:17 编辑

大家好,我用的是原子哥的2.8'' ILI9341驱动的屏,探索者F4板子,试验LCD_Color_Fill()时,下载程序后,直接黑屏:
[mw_shl_code=c,true]
int main(void)
{
        u16 test_color[240*30];  //测试LCD_Color_Fill()定义的数组,想在屏的最上方显示一条240*30的红带
        u16 test;
        u8 t=' ';
         u8 x=0;
        u8 lcd_id[12];
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);
        uart_init(115200);
        
        LED_Init();
         LCD_Init();
        POINT_COLOR=RED;
        sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);

for(test=0;test<240*30;test++)
   test_color[test]=RED;                        //填充颜色为红色
LCD_Color_Fill(0,0,240,30,test_color);
while(1);
}
[/mw_shl_code]
下载上面的代码后,黑屏。
若将u16 test_color[240*30];改小,例如u16 test_color[24*30];反而不黑屏。

有人知道这是怎么回事吗?

最佳答案

查看完整内容[请看2#楼]

局部变量定义这么大,作死的节奏,放全局变量!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-12 14:20:32 | 显示全部楼层
局部变量定义这么大,作死的节奏,放全局变量!!
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2017-7-12 18:27:19 | 显示全部楼层
本帖最后由 学习stm32f4 于 2017-7-12 18:29 编辑

眼看着自己的帖子快沉下去了,重新顶起
[mw_shl_code=c,true]
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "math.h"
#define M_PI 3.14159265358979323846
int main(void)
{
        u16 t;
         u8 x=0;
        u8 lcd_id[12];
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);
        uart_init(115200);
         
        LED_Init();
         LCD_Init();
        POINT_COLOR=RED;
        sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);
         LCD_Clear(BLACK);
        LCD_Fill(0,0,240,30,RED);
        LCD_Fill(0,290,240,320,RED);
       LCD_Fill(0,0,240,30,RED);
       LCD_Fill(0,290,240,320,RED);
       while(1)
                {
                        for(t=0;t<=360;t++)
                        {
                                POINT_COLOR=RED;
                                LCD_Draw_Circle(120,160,120);
                                LCD_DrawLine(120,160,(u16)(120+120*cos(t*PI/180)),(u16)(160+120*sin(t*PI/180)));
                                delay_ms(10);
                                POINT_COLOR=BLACK;
                                LCD_DrawLine(120,160,(u16)(120+120*cos(t*PI/180)),(u16)(160+120*sin(t*PI/180)));
                        }
                        t=0;
                }

}
[/mw_shl_code]
1.jpg
2.jpg
3.jpg
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2017-7-13 10:14:40 | 显示全部楼层
正点原子 发表于 2017-7-12 14:20
局部变量定义这么大,作死的节奏,放全局变量!!

非常感谢原子哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-18 16:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表