野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3386|回复: 2

霸道V2使用最新cubemax移植LCD,白屏,有谁知道为什么吗?

[复制链接]
发表于 2023-3-12 18:53:36 | 显示全部楼层 |阅读模式
SRAM_HandleTypeDef hsram1;       
/* FSMC initialization function */
void MX_FSMC_Init(void)
{
  /* USER CODE BEGIN FSMC_Init 0 */

  /* USER CODE END FSMC_Init 0 */

  FSMC_NORSRAM_TimingTypeDef Timing = {0};

  /* USER CODE BEGIN FSMC_Init 1 */

  /* USER CODE END FSMC_Init 1 */

  /** Perform the SRAM1 memory initialization sequence
  */
  hsram1.Instance = FSMC_NORSRAM_DEVICE;
  hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
  /* hsram1.Init */
  hsram1.Init.NSBank = FSMC_NORSRAM_BANK4;                                                                                                                //  FSMC_NORSRAM_BANK4                        FSMC_NORSRAM_BANK4
  hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
  hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_NOR;                                                                                        //  FSMC_MEMORY_TYPE_NOR                                FSMC_MEMORY_TYPE_SRAM
  hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
  hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
  hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
  hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
  hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
  hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
  hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
  hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
  hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
  hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
  /* Timing */
  Timing.AddressSetupTime = 0;
  Timing.AddressHoldTime = 0;
  Timing.DataSetupTime = 8;
  Timing.BusTurnAroundDuration = 0;
  Timing.CLKDivision = 0;
  Timing.DataLatency = 0;
  Timing.AccessMode = FSMC_ACCESS_MODE_B;
  /* ExtTiming */

  if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
  {
    Error_Handler( );
  }

  /** Disconnect NADV
  */

  __HAL_AFIO_FSMCNADV_DISCONNECTED();

  /* USER CODE BEGIN FSMC_Init 2 */

  /* USER CODE END FSMC_Init 2 */
}

// 然后我使用配套的代码     也点不亮,使用例程就可以,


/**
  * @brief  初始化ILI9341的IO引脚
  * @param  无
  * @retval 无
  */
static void ILI9341_GPIO_Config ( void )
{
        GPIO_InitTypeDef GPIO_Initure;

      /* Enable GPIOs clock */
  __HAL_RCC_GPIOD_CLK_ENABLE();
  __HAL_RCC_GPIOE_CLK_ENABLE();
  __HAL_RCC_GPIOF_CLK_ENABLE();
  __HAL_RCC_GPIOG_CLK_ENABLE();
  __HAL_RCC_FSMC_CLK_ENABLE();                        //使能FSMC时钟

    /* Common GPIO configuration */
  GPIO_Initure.Mode      = GPIO_MODE_OUTPUT_PP;  //推挽输出
  GPIO_Initure.Pull      = GPIO_PULLUP;
  GPIO_Initure.Speed     = GPIO_SPEED_FREQ_HIGH;

  GPIO_Initure.Pin=GPIO_PIN_6;                                                                        //   GPIO_PIN_12
        HAL_GPIO_Init(GPIOG,&GPIO_Initure);                                                       

  //初始化复位引脚G11
        GPIO_Initure.Pin=GPIO_PIN_11;
        HAL_GPIO_Init(GPIOG,&GPIO_Initure);

//-------------------------------------------------------------
       
  GPIO_Initure.Mode=GPIO_MODE_AF_PP;
//  GPIO_Initure.Alternate=GPIO_AF12_FSMC;        //复用为FSMC

        //初始化PD0,1,4,5,8,9,10,14,15
        GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_8|\
                                                 GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14|GPIO_PIN_15;
  HAL_GPIO_Init(GPIOD, &GPIO_Initure);

          //初始化PE2,7,8,9,10,11,12,13,14,15
        GPIO_Initure.Pin=GPIO_PIN_2|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|\
                     GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
        HAL_GPIO_Init(GPIOE,&GPIO_Initure);
       
        //初始化G12
        GPIO_Initure.Pin=GPIO_PIN_12;                                                                                        //    PG6 复用推挽输出   GPIO_PIN_6   
        HAL_GPIO_Init(GPIOG,&GPIO_Initure);

}


/**
  * @brief  LCD  FSMC 模式配置
  * @param  无
  * @retval 无
  */
static void ILI9341_FSMC_Config ( void )
{
        SRAM_Handler.Instance = FSMC_NORSRAM_DEVICE;
   SRAM_Handler.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;

  /* SRAM device configuration */  
  Timing.AddressSetupTime      = 0x00;
  Timing.AddressHoldTime       = 0x00;
  Timing.DataSetupTime         = 0x08;
  Timing.BusTurnAroundDuration = 0x00;
  Timing.CLKDivision           = 0x00;
  Timing.DataLatency           = 0x00;
  Timing.AccessMode            = FSMC_ACCESS_MODE_B;

  SRAM_Handler.Init.NSBank=FSMC_Bank1_NORSRAMx    ;                                                     //使用NE4
        SRAM_Handler.Init.DataAddressMux=FSMC_DATA_ADDRESS_MUX_DISABLE;         //地址/数据线不复用
        SRAM_Handler.Init.MemoryType=FSMC_MEMORY_TYPE_NOR;                                          //NOR
        SRAM_Handler.Init.MemoryDataWidth=FSMC_NORSRAM_MEM_BUS_WIDTH_16;         //16位数据宽度
        SRAM_Handler.Init.BurstAccessMode=FSMC_BURST_ACCESS_MODE_DISABLE; //是否使能突发访问,仅对同步突发存储器有效,此处未用到
        SRAM_Handler.Init.WaitSignalPolarity=FSMC_WAIT_SIGNAL_POLARITY_LOW;//等待信号的极性,仅在突发模式访问下有用
        SRAM_Handler.Init.WaitSignalActive=FSMC_WAIT_TIMING_BEFORE_WS;           //存储器是在等待周期之前的一个时钟周期还是等待周期期间使能NWAIT
        SRAM_Handler.Init.WriteOperation=FSMC_WRITE_OPERATION_ENABLE;            //存储器写使能
        SRAM_Handler.Init.WaitSignal=FSMC_WAIT_SIGNAL_DISABLE;                   //等待使能位,此处未用到
        SRAM_Handler.Init.ExtendedMode=FSMC_EXTENDED_MODE_DISABLE;                //读写使用相同的时序
        SRAM_Handler.Init.AsynchronousWait=FSMC_ASYNCHRONOUS_WAIT_DISABLE;        //是否使能同步传输模式下的等待信号,此处未用到
        SRAM_Handler.Init.WriteBurst=FSMC_WRITE_BURST_DISABLE;                     //禁止突发写

  /* SRAM controller initialization */
   ILI9341_GPIO_Config();
  HAL_SRAM_Init(& SRAM_Handler, &Timing, &Timing);
               
}




回复

使用道具 举报

 楼主| 发表于 2023-3-12 18:56:30 | 显示全部楼层
为什么我使用例程可以点亮屏,我使用最新的cubemax生成的代码,和移植过来的驱动代码也不可以,有谁用最新的cubemax生成工程参考一下,谢谢
回复 支持 反对

使用道具 举报

发表于 2023-3-15 16:29:42 | 显示全部楼层
你可以把CubeMX生成的代码与例程里对比下,初始化时哪个配置不一样就能找出来了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 07:16 , Processed in 0.028857 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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