hyskt 发表于 2012-1-4 17:55:25

rtgui在STM32F107上如何移植?

如题,本人用的是神舟4号开发板,好几天了,都没成功,但屏貌似驱动起来了,显示不正常。。。哪位大侠有成功的经验?

hyskt 发表于 2012-1-4 17:57:13

****************************************************************************/
        void ili9320_SetPoint(u16 x,u16 y,u16 point)
{
if ( (x>320)||(y>240) ) return;
ili9320_SetCursor(x,y);

ClrCs;
LCD_WriteCommand(0x0022);
LCD_WriteRAM(point);
SetCs;
}

/*设置像素点 颜色,X,Y */
void rt_hw_lcd_set_pixel(const char* pixel, int x, int y)
{
if ( (x>320)||(y>240) ) return;
ili9320_SetCursor(x,y);

ClrCs;
LCD_WriteCommand(0x0022);
LCD_WriteRAM(*pixel);
SetCs;
}

/* 获取像素点颜色 */
void rt_hw_lcd_get_pixel(char* pixel, int x, int y)
{
u16 temp;
LCD_WriteReg(x,y);
ClrCs;
LCD_WriteCommand(0x0022);
        temp = LCD_ReadRAM(); //dummy
        temp = LCD_ReadRAM();        
   SetCs;

//p=ili9320_BGR2RGB(temp);
   *(rt_uint16_t*)pixel = temp;
}

/* 画水平线 */
void rt_hw_lcd_draw_hline(const char* pixel, int x1, int x2, int y)
{
    while (x1 < x2)
    {
          ili9320_SetCursor(x1,y);

ClrCs;
LCD_WriteCommand(0x0022);
LCD_WriteRAM(*pixel);
SetCs;
       x1++;
    }

}

/* 垂直线 */
void rt_hw_lcd_draw_vline(const char* pixel, int x, int y1, int y2)
{

    while (y1 < y2)
    {
ili9320_SetCursor(x,y1);
ClrCs;
LCD_WriteCommand(0x0022);
LCD_WriteRAM(*pixel);
SetCs;
      y1++;
    }

}

                                /* ?? */
void rt_hw_lcd_draw_blit_line(const char* pixels, int x, int y, rt_size_t size)
{
        rt_uint16_t *ptr;

        ptr = (rt_uint16_t*)pixels;
   if ( (x>320)||(y>240) ) return;
ili9320_SetCursor(x,y);
   ClrCs;
LCD_WriteCommand(0x0022);
    while (size)
    {
      LCD_WriteRAM(*ptr ++);
                size --;
    }
SetCs;
}

hyskt 发表于 2012-1-4 18:00:13

以上程序怀疑有问题,请各位指教。LCD控制器是SSD8989,在屏上显示的PANEL颜色不正常,还有rt_hw_lcd_draw_blit_line 是画渐变颜色线吗?
页: [1]
查看完整版本: rtgui在STM32F107上如何移植?