8位驱动240X320 LCD 刷屏慢,有办法提高吗?

2019-12-27 18:42发布

GPIOC 口 低8bit 是数据口,高8bit 分别接的 CS , RST , RS , WR , RD 。 现在程序跑刷屏 每秒3、4帧这样, 可以很明显看到滚动, 还有办法提高吗?

读写函数如下


#define ILI9341_CS_PIN        GPIO_Pin_12
#define ILI9341_RS_PIN        GPIO_Pin_10
#define ILI9341_WR_PIN        GPIO_Pin_9
#define ILI9341_RD_PIN        GPIO_Pin_8

#define ILI9341_RST_PIN      GPIO_Pin_11
#define ILI9341_PORT         GPIOC

#define ILI9341_CS_LOW()      GPIOC->BRR =  ILI9341_CS_PIN
#define ILI9341_CS_HIGH()     GPIOC->BSRR =  ILI9341_CS_PIN

#define ILI9341_RST_LOW()     GPIOC->BRR =  ILI9341_RST_PIN
#define ILI9341_RST_HIGH()    GPIOC->BSRR =  ILI9341_RST_PIN

#define ILI9341_RD_LOW()      GPIOC->BRR =  ILI9341_RD_PIN
#define ILI9341_RD_HIGH()     GPIOC->BSRR =  ILI9341_RD_PIN

#define ILI9341_RS_LOW()      GPIOC->BRR =  ILI9341_RS_PIN
#define ILI9341_RS_HIGH()     GPIOC->BSRR =  ILI9341_RS_PIN

#define ILI9341_WR_LOW()      GPIOC->BRR =  ILI9341_WR_PIN
#define ILI9341_WR_HIGH()     GPIOC->BSRR =  ILI9341_WR_PIN


void ILI9341_WriteReg(uint8_t DataHH)                       
{
        
  ILI9341_CS_LOW();
       
  ILI9341_RD_HIGH();   
  ILI9341_RS_LOW();
  
  GPIOC->ODR = (GPIOC->ODR & 0xFF00) + DataHH;         
   
  ILI9341_WR_LOW();
  ILI9341_WR_HIGH();
  ILI9341_CS_HIGH();

}
//***********************************************************

//***********************************************************
void ILI9341_WriteData(uint8_t  DataHH)                               
{

  ILI9341_CS_LOW();
  ILI9341_RD_HIGH();
  ILI9341_RS_HIGH();
       
  GPIOC->ODR = (GPIOC->ODR & 0xFF00) + DataHH;
      
  ILI9341_WR_LOW();

  ILI9341_WR_HIGH();
  ILI9341_CS_HIGH();
         
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
cheungman
1楼-- · 2019-12-27 20:07
用FSMC, 扩展到16bit, 状态机刷屏
csb1030
2楼-- · 2019-12-27 21:47
 精彩回答 2  元偷偷看……
gfy200866
3楼-- · 2019-12-28 02:19
LZ问题最后怎么解决的。我现在做到也是感觉很慢呢。
LM1876
4楼-- · 2019-12-28 05:44
本帖最后由 LM1876 于 2017-7-10 15:17 编辑

提高主频呗

补充,或是不全屏刷,只刷需要改变的部分

一周热门 更多>