野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12350|回复: 3

LCD横向画像素点从坐标(4,0)后画一个像素点,但是屏上显示的一条竖线,是怎么回事?

[复制链接]
发表于 2016-1-22 11:51:50 | 显示全部楼层 |阅读模式
/**
  * @brief  Displays a pixel.
  * @param  x: pixel x.
  * @param  y: pixel y.  
  * @retval None
  */
void PutPixel(int16_t x, int16_t y)
{
  if(x < 0 || x > LCD_PIXEL_WIDTH || y < 0 || y > LCD_PIXEL_HEIGHT)
  {
    return;  
  }
#if 1
LCD_DrawLine(x, y, 1, LCD_DIR_HORIZONTAL);
#else
{
   /*RGB888*/
   uint32_t  Xaddress =0;
    Xaddress =  CurrentFrameBuffer + 3*(LCD_PIXEL_WIDTH*y + x);
   *(__IO uint16_t*) Xaddress= (0x00FFFF & CurrentTextColor);        //GB
   *(__IO uint8_t*)( Xaddress+2)= (0xFF0000 & CurrentTextColor) >> 16; //R
  }
#define LCD_FRAME_BUFFER       ((uint32_t)0xD0000000)
static uint32_t CurrentFrameBuffer = LCD_FRAME_BUFFER;
CurrentFrameBuffer 这个值是怎么计算的?第一个像素点(0,0)的Xaddress =0xD005FA00(不知道是怎么来的)之后每个像素点地址差3个字节是没问题的,颜色值分量也没问题,但是
DMA2D_StartTransfer(); 函数执行完了就是一条竖线,求大神们指导。

回复

使用道具 举报

发表于 2016-1-22 13:50:04 | 显示全部楼层
现在已经更新了液晶屏的教程了,你先看看教程学习下:http://pan.baidu.com/s/1mgVyoBI
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-22 14:35:32 | 显示全部楼层
屏幕分辨率不同,屏幕位置与SDRAM地址是怎么对应的呢?
回复 支持 反对

使用道具 举报

发表于 2016-2-17 13:29:21 | 显示全部楼层
DMA2D这个,是快速填充用的....
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-2 23:53 , Processed in 0.033312 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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