OpenEdv-开源电子网

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

stm32f407跑st7796s4.0屏请教

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-5-25
在线时间
7 小时
发表于 2020-6-10 10:07:18 | 显示全部楼层 |阅读模式
1金钱
屏是st7796s驱动芯片,480*320的SPI屏,按卖家的驱动代码,刷满屏颜色正常,但是上电初始化后屏幕右侧或左侧会有一块区域花屏混合着正常程序显示的界面中,这并不是程序产生的,应该是初始化的问题,求老师们帮解,谢谢咯!(实际上只用0X3A和0XB4两条命令就可以驱动屏幕正常刷屏),驱动程序如下:(
LCD_WR_REG(0xF0);
LCD_WR_DATA(0xC3);
LCD_WR_REG(0xF0);
LCD_WR_DATA(0x96);

LCD_WR_REG(0x36);
LCD_WR_DATA(0x68);

LCD_WR_REG(0x3A);
LCD_WR_DATA(0x05);


LCD_WR_REG(0xB0);
LCD_WR_DATA(0x80);


LCD_WR_REG(0xB6);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x02);

LCD_WR_REG(0xB5);
LCD_WR_DATA(0x02);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x04);

LCD_WR_REG(0xB1);
LCD_WR_DATA(0x80);
LCD_WR_DATA(0x10);


LCD_WR_REG(0xB4);
LCD_WR_DATA(0x00);

LCD_WR_REG(0xB7);
LCD_WR_DATA(0xC6);

LCD_WR_REG(0xC5);
LCD_WR_DATA(0x24);

LCD_WR_REG(0xE4);
LCD_WR_DATA(0x31);

LCD_WR_REG(0xE8);
LCD_WR_DATA(0x40);
LCD_WR_DATA(0x8A);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x29);
LCD_WR_DATA(0x19);
LCD_WR_DATA(0xA5);
LCD_WR_DATA(0x33);


LCD_WR_REG(0xC2);

LCD_WR_REG(0xA7);

LCD_WR_REG(0xE0);
LCD_WR_DATA(0xF0);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x12);
LCD_WR_DATA(0x12);
LCD_WR_DATA(0x2B);
LCD_WR_DATA(0x3C);
LCD_WR_DATA(0x44);
LCD_WR_DATA(0x4B);
LCD_WR_DATA(0x1B);
LCD_WR_DATA(0x18);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x1D);
LCD_WR_DATA(0x21);

LCD_WR_REG(0XE1);
LCD_WR_DATA(0xF0);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x0C);
LCD_WR_DATA(0x0D);
LCD_WR_DATA(0x27);
LCD_WR_DATA(0x3B);
LCD_WR_DATA(0x44);
LCD_WR_DATA(0x4D);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x1D);
LCD_WR_DATA(0x21);

LCD_WR_REG(0X36);
LCD_WR_DATA(0xEC);


LCD_WR_REG(0xF0);
LCD_WR_DATA(0xC3);
LCD_WR_REG(0xF0);
LCD_WR_DATA(0x69);

LCD_WR_REG(0X13);

LCD_WR_REG(0X11);


LCD_WR_REG(0X29);


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-6-11 01:37:37 | 显示全部楼层
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-5-25
在线时间
7 小时
 楼主| 发表于 2020-6-13 21:07:08 | 显示全部楼层

我的级别好像还不能上传图片    感觉就是屏幕的三分之一是雪花点的那样!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-5-25
在线时间
7 小时
 楼主| 发表于 2020-6-14 12:32:38 | 显示全部楼层
本帖最后由 qiji1973 于 2020-6-20 11:44 编辑

我似乎目前的级别不能够发送图片,另外,最头疼的是程序在运行中,会出现白屏,发现源代码中显示动态图形程序使用了DMA的方式,源程序是9341驱动的屏幕,这个在驱动7796屏是否会有冲突呢?
void LcdSpiDmaSend( void ){
  
  SPI_Cmd(SPIx, DISABLE);
  SPI_I2S_DeInit(SPIx);
  SPI_InitTypeDef  SPI_InitStructure;
  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_Init(SPIx, &SPI_InitStructure);
  SPI_Cmd(SPIx, ENABLE);
  
  
  
  DMA_InitTypeDef DMA_InitStructure;
  RCC_AHB1PeriphClockCmd(SPIx_DMA_CLK, ENABLE);
  
/* unsigned short hg[2];
  hg[0] = 0x0103;
  hg[1] = 0x0F70;*/
  
  /* Deinitialize DMA Streams */
  DMA_DeInit(SPIx_TX_DMA_STREAM);
  
  /* Configure DMA Initialization Structure */
  DMA_InitStructure.DMA_BufferSize = 30720;//15360;//30720 ;
  DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable ;
  DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull ;
  DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single ;
  
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
  //DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
  
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
  DMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t) (&(SPI1->DR)) ;
  DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
  
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
  //DMA_InitStructure.DMA_PeripheralDataSize = DMA_MemoryDataSize_HalfWord;
  
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;

  /* Configure TX DMA */
  DMA_InitStructure.DMA_Channel = SPIx_TX_DMA_CHANNEL ;
  DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral ;
  DMA_InitStructure.DMA_Memory0BaseAddr =(uint32_t)&Buf_float_tmp2[0] ;
  DMA_Init(SPIx_TX_DMA_STREAM, &DMA_InitStructure);

  /* Enable DMA SPI TX Stream */
  DMA_Cmd(SPIx_TX_DMA_STREAM,ENABLE);
  /* Enable SPI DMA TX Requsts */
  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);
  

  
    /* Waiting the end of Data transfer */
  while (DMA_GetFlagStatus(SPIx_TX_DMA_STREAM,SPIx_TX_DMA_FLAG_TCIF)==RESET);
  
  /* Clear DMA Transfer Complete Flags */
  DMA_ClearFlag(SPIx_TX_DMA_STREAM,SPIx_TX_DMA_FLAG_TCIF);
  
  /* Disable DMA SPI TX Stream */
  DMA_Cmd(SPIx_TX_DMA_STREAM,DISABLE);
  
  /* Disable SPI DMA TX Requsts */
  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, DISABLE);

  
  
    SPI_Cmd(SPIx, DISABLE);
  SPI_I2S_DeInit(SPIx);

  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_Init(SPIx, &SPI_InitStructure);
  SPI_Cmd(SPIx, ENABLE);
}

void DMA2_Stream3_IRQHandler( void ){

  if (DMA_GetFlagStatus(DMA2_Stream3, DMA_FLAG_TCIF3) == SET)
  {


  }


}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-6-15 01:33:35 | 显示全部楼层
帮顶
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-7-14
在线时间
3 小时
发表于 2020-10-8 20:18:55 | 显示全部楼层
楼主你有没有这个屏显示曲线的函数
回复

使用道具 举报

17

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
897
金钱
897
注册时间
2016-2-16
在线时间
162 小时
发表于 2020-11-17 14:08:57 | 显示全部楼层
楼主,你使用的是TFT真彩屏吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-29 23:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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