硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5685|回复: 2
收起左侧

[emWin] 我用stm32和7寸液晶做emwin界面,参考的论坛里的教程,但是下载后屏幕上什么也没有

[复制链接]

2

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2015-3-5 18:47:02 | 显示全部楼层 |阅读模式
我参考论坛里的教程修改那几处后,打算先显示一个简单的字符串,没有操作系统,只是显示字符串,但是下载后屏幕全黑,什么也没有。
屏幕是我随便买回来玩的7寸的,时8080时序驱动的,液晶的驱动自己写好的,测试过没问题,修改的代码如下:

  1. #include "GUI.h"
  2. #include "GUIDRV_Template.h"
  3. #include "bsp.h"
  4. #define XSIZE_PHYS  800
  5. #define YSIZE_PHYS  480
  6. #define VXSIZE_PHYS 800
  7. #define VYSIZE_PHYS 480
  8. #define COLOR_CONVERSION GUICC_M565
  9. #define DISPLAY_DRIVER &GUIDRV_Template_API
  10. #define DISPLAY_ORIENTATION  GUI_SWAP_XY | GUI_MIRROR_X | GUI_MIRROR_Y
  11. void LCD_X_Config(void) {
  12.   GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
  13.   LCD_SetSizeEx    (0, XSIZE_PHYS, YSIZE_PHYS);
  14.      LCD_SetVSizeEx   (0, VXSIZE_PHYS, VYSIZE_PHYS);
  15.             
  16. }
  17. static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, int PixelIndex) {
  18.   #ifdef WIN32
  19.     LCDSIM_SetPixelIndex(x, y, PixelIndex, pDevice->LayerIndex);
  20.   #else
  21.     #if (LCD_MIRROR_X == 1) || (LCD_MIRROR_Y == 1) || (LCD_SWAP_XY == 1)
  22.       int xPhys, yPhys;
  23.       xPhys = LOG2PHYS_X(x, y);
  24.       yPhys = LOG2PHYS_Y(x, y);
  25.     #else
  26.       #define xPhys x
  27.       #define yPhys y
  28.     #endif
  29.     GUI_USE_PARA(pDevice);
  30.     GUI_USE_PARA(x);
  31.     GUI_USE_PARA(y);
  32.     GUI_USE_PARA(PixelIndex);
  33.     {
  34.       //
  35.       // Write into hardware ... Adapt to your system
  36.       //
  37.       // TBD by customer...
  38.       //
  39.     YJ_SetPoint(xPhys,yPhys,PixelIndex);
  40.     }
  41.     #if (LCD_MIRROR_X == 0) && (LCD_MIRROR_Y == 0) && (LCD_SWAP_XY == 0)
  42.       #undef xPhys
  43.       #undef yPhys
  44.     #endif
  45.   #endif
  46. }
  47. static unsigned int _GetPixelIndex(GUI_DEVICE * pDevice, int x, int y) {
  48.   unsigned int PixelIndex;
  49.   #ifdef WIN32
  50.     PixelIndex = LCDSIM_GetPixelIndex(x, y, pDevice->LayerIndex);
  51.   #else
  52.     #if (LCD_MIRROR_X == 1) || (LCD_MIRROR_Y == 1) || (LCD_SWAP_XY == 1)
  53.       int xPhys, yPhys;
  54.       xPhys = LOG2PHYS_X(x, y);
  55.       yPhys = LOG2PHYS_Y(x, y);
  56.     #else
  57.       #define xPhys x
  58.       #define yPhys y
  59.     #endif
  60.     GUI_USE_PARA(pDevice);
  61.     GUI_USE_PARA(x);
  62.     GUI_USE_PARA(y);
  63.     {
  64.       //
  65.       // Write into hardware ... Adapt to your system
  66.       //
  67.       // TBD by customer...
  68.       PixelIndex = YJ_ReadPonit(xPhys, yPhys);
  69.     }
  70.     #if (LCD_MIRROR_X == 0) && (LCD_MIRROR_Y == 0) && (LCD_SWAP_XY == 0)
  71.       #undef xPhys
  72.       #undef yPhys
  73.     #endif
  74.   #endif
  75.   return PixelIndex;
  76. }
复制代码
主要修改了这三个函数和代码优化的那几个,然后写了一个字符串显示的函数,

  1. void MainTask(void)
  2. {
  3.     int xPos;
  4.     int yPos;
  5.     int xSize;
  6.     int i;
  7.     i = 0;
  8.    
  9.     /* ³õʼ»¯ */
  10.     GUI_Init();
  11.    
  12.     /* »ñÈ¡ÒªÏÔʾµÄX,Y×ø±ê */
  13.     xPos = LCD_GetXSize() / 2;
  14.     yPos = LCD_GetYSize() / 3;
  15.    
  16.     /* ÉèÖÃÎı¾ÏÔʾģʽ */
  17.     GUI_SetTextMode(GUI_TM_REV);
  18.    
  19.     /* ÉèÖÃÏÔʾ×ÖÌå */
  20.     GUI_SetFont(GUI_FONT_20F_ASCII);
  21.     GUI_DispStringHCenterAt("Hello world!", xPos, yPos);
  22.    
  23.     /* ÉèÖÃÏÔʾÊý×Ö×ÖÌå */
  24.     GUI_SetFont(GUI_FONT_D24X32);
  25.     /* »ñÈ¡ÏÔʾ0000£¬ÔÚ×ÖÌåGUI_FONT_D24X32ϵÄÏÔʾÇé¿ö */
  26.     xSize = GUI_GetStringDistX("0000");
  27.    
  28.     /* ÉèÖÃÏÔʾλÖà */
  29.     xPos -= xSize / 2;
  30.     yPos += 24 + 10;
  31.     while (1)
  32.     {
  33.         GUI_DispDecAt( i++, xPos, yPos, 4);
  34.         if (i > 9999)
  35.         {
  36.             i = 0;
  37.         }
  38.     }
  39. }
复制代码
可是屏幕就是不亮,什么也不显示,我测试又了一下液晶,液晶没坏,求助啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2015-3-5 19:18:59 | 显示全部楼层
楼主,你用的是STM32平台不,如果是的话,需要在初始化emwin前使能CRC。
回复

使用道具 举报

2

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-3-5 20:02:41 | 显示全部楼层
我用的是stm32f103
我初始化了CRC了
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 08:09 , Processed in 0.164764 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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