打印
[APM32E1]

APM32E103VET6控制屏显示有时能正常初始化有时不能

[复制链接]
831|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zZz阿洲|  楼主 | 2023-12-6 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题。在使用apm32e103代替stm32f103的控制的时候,有时候fsmc的初始化后不能进入。主要的原因如下图:

初始化fsmc后BURSTEN位应为0,但是有时是1,初始化到fsmc_init()跟着赋值后出来就是1,但有时又是0,将APM32里面的BURSTRN位置0。屏幕正常
我看APM32E103给PCLK1最大频率是60M,但是我给120M也能正常运行。时好时坏,真的烦人。

使用特权

评论回复
沙发
zZz阿洲|  楼主 | 2023-12-6 15:53 | 只看该作者
图片没加载出来,我贴下初始化部分的程序
/*
*********************************************************************************************************
*        函 数 名: LCD_FSMCConfig
*        功能说明: 配置FSMC并口访问时序
*        形    参:无
*        返 回 值: 无
*********************************************************************************************************
*/
static void LCD_FSMCConfig(void)
{
   
    FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
    FSMC_NORSRAMTimingInitTypeDef  p;
       
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
        ENSleep(1);
       
    p.FSMC_AddressSetupTime = 1;
  p.FSMC_AddressHoldTime = 1;
  p.FSMC_DataSetupTime = 1;
  p.FSMC_BusTurnAroundDuration = 0;
  p.FSMC_CLKDivision = 0;
  p.FSMC_DataLatency = 0;
  p.FSMC_AccessMode = FSMC_AccessMode_B;
       
       
  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  //FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
   //FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_PSRAM; //砞﹚?P˙獶確ノ

  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  //FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Enable;//砞﹚ㄏ?喱鸬o肚块家Α

  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  //FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_High;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  //FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Enable;
  //FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_DuringWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  //FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Enable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  //FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable;

  //FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Enable;

  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  //FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Enable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;          

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

  /* Enable FSMC Bank1_SRAM Bank */
  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
       
}

使用特权

评论回复
板凳
专注于嵌入式| | 2023-12-7 08:37 | 只看该作者
时钟不对啊,人家固定了最大时钟,你非要违反规定,还问为什么出问题

使用特权

评论回复
地板
cr315| | 2024-1-3 14:32 | 只看该作者
检查电源是否稳定,是否有足够的电流和电压来驱动控制屏。

使用特权

评论回复
5
两只袜子| | 2024-1-3 14:32 | 只看该作者
硬件连接是否良好

使用特权

评论回复
6
jcky001| | 2024-1-3 14:33 | 只看该作者
确保固件或软件是最新的,或者与硬件兼容的版本。有时,过时或损坏的固件/软件可能导致初始化问题。

使用特权

评论回复
7
elephant00| | 2024-1-3 14:33 | 只看该作者
检查周围是否有强烈的电磁干扰源,如电动机、大功率无线电等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝