OpenEdv-开源电子网

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

驱动OLED显示屏,IO口模拟可以驱动但是用FSMC就驱动不了,求指点,用的是STM32F103vct6单片机

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
38
金钱
38
注册时间
2015-11-25
在线时间
3 小时
发表于 2016-2-23 17:11:16 | 显示全部楼层 |阅读模式
typedef struct
{
        vu16 LCD_REG; //Ãüáî
        vu16 LCD_RAM; //êy¾Y
} LCD_TypeDef;

#define LCD_BASE        ((u32)(0x60000000 | 0x00020000))  //μØÖ·¼ÆËã1«ê½BANK(X).Region(Y)+ 2* x^n£¨xÎa1ü½Åêy£©
#define LCD             ((LCD_TypeDef *) LCD_BASE)
下面是初始化代码
GPIO_InitTypeDef GPIO_InitStructure;
        FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  readWriteTiming;
        FSMC_NORSRAMTimingInitTypeDef  writeTiming;
       
       RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);        //ê1ÄüFSMCê±Öó
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,ENABLE);//ê1ÄüPORTB,D,E,GòÔ¼°AFIO¸′óÃ1|Äüê±Öó


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_6;                                 //PB9 背光  PB6复位
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
       
        // PD.14(D0) PD.15(D1) PD.0(D2) PD.1(D3)  PD.8(D13) PD.9(D14) PD.10(D15)  PD.7(NE1) PD.11(A16) PD.4(NOE) PD.5(NWE)
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|
                                      GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_15;                               
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);
           
       
        // PE.7(D4) PE.8(D5) PE.9(D6) PE.10(D7) PE.11(D8) PE.12(D9) PE.13(D10) PE.14(D11) PE.15(D12)
        GPIO_InitStructure.GPIO_Pin = 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;                               
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOE, &GPIO_InitStructure);                                                                                                                  


readWriteTiming.FSMC_AddressSetupTime = 0x0F;        //我把所有时间都调最长,应该没事吧
  readWriteTiming.FSMC_AddressHoldTime = 0x0F;                
  readWriteTiming.FSMC_DataSetupTime = 0xFF;                 
  readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
  readWriteTiming.FSMC_CLKDivision = 0x00;
  readWriteTiming.FSMC_DataLatency = 0x00;
  readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;         


        writeTiming.FSMC_AddressSetupTime = 0x0F;         
  writeTiming.FSMC_AddressHoldTime = 0x0F;                
  writeTiming.FSMC_DataSetupTime = 0xFF;               
  writeTiming.FSMC_BusTurnAroundDuration = 0x00;
  writeTiming.FSMC_CLKDivision = 0x00;
  writeTiming.FSMC_DataLatency = 0x00;
  writeTiming.FSMC_AccessMode = FSMC_AccessMode_A;         //Ä£ê½A


  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM;// FSMC_MemoryType_SRAM;  //SRAM   
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =FSMC_BurstAccessMode_Disable;// FSMC_BurstAccessMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
        FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;  
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;        //  
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; //
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming;  //D′ê±Dò

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  //

求大神指点一二,不甚感激

        FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  //

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

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
38
金钱
38
注册时间
2015-11-25
在线时间
3 小时
 楼主| 发表于 2016-2-23 17:11:38 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2014-6-12
在线时间
54 小时
发表于 2016-2-23 19:13:44 | 显示全部楼层
VC有FSMC?
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
38
金钱
38
注册时间
2015-11-25
在线时间
3 小时
 楼主| 发表于 2016-2-24 09:11:15 | 显示全部楼层

有的,手册上有
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 22:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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