您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

      ?stm32 FSMC-外擴(kuò)SRAM IS62WV51216

      文章出處:單片機(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時間:
      2020
      11-10

      引腳定義 

      FSMC配置步驟

      1.使能對應(yīng)引腳GPIO時鐘 
      2.配置GPIO引腳模式 
      3.使能FSMC時鐘 
      4.FSMC初始化 
      5.存儲器塊使能

      舉例 

      #define Bank1_SRAM3_ADDR    ((u32)(0x68000000))  //首地址0x60000000,每塊0x40000000


      void SRAM_gpio_init()

      {

          GPIO_InitTypeDef gpiof = 

          {

              GPIO_Pin_0 " GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 |

                  GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15, //FSMC_A0 - FSMC_A9

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };

          GPIO_InitTypeDef gpiog0_5 = 

          {

              GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5, //FSMC_A10 - FSMC_A15

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };

          GPIO_InitTypeDef gpiod = 

          {

              GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | //FSMC_A15 - FSMC_A18

              GPIO_Pin_14 | GPIO_Pin_15 | GPIO_Pin_0 | GPIO_Pin_1 | //FSMC_D0 - FSMC_D3

                  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10, //FSMC_D13 - FSMC_D15

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };

          GPIO_InitTypeDef gpioe = 

          {

              //FSMC_D4 - FSMC_D12

              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_Speed_50MHz,

              GPIO_Mode_AF_PP

          };


          GPIO_InitTypeDef gpioe0_1 = 

          {

              GPIO_Pin_0 | GPIO_Pin_1, //FSMC_NBL0-FSMC_NBL1

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };

          GPIO_InitTypeDef gpiod4_5 = 

          {

              GPIO_Pin_4 | GPIO_Pin_5, //FSMC_NOE - FSMC_NWE

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };

          GPIO_InitTypeDef gpiog10 = 

          {

              GPIO_Pin_10, //片選

              GPIO_Speed_50MHz,

              GPIO_Mode_AF_PP

          };


          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);


          GPIO_Init(GPIOF, &gpiof);

          GPIO_Init(GPIOG, &gpiog0_5);

          GPIO_Init(GPIOD, &gpiod);

          GPIO_Init(GPIOE, &gpioe);

          GPIO_Init(GPIOE, &gpioe0_1);

          GPIO_Init(GPIOD, &gpiod4_5);

          GPIO_Init(GPIOG, &gpiog10);

      }


      void FSMC_sram_init()

      {

          FSMC_NORSRAMInitTypeDef fsmc = {0};

          FSMC_NORSRAMTimingInitTypeDef FSMC_ReadWriteTimingStruct = {0};


          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);


          FSMC_ReadWriteTimingStruct.FSMC_AddressSetupTime = 0x00;

          FSMC_ReadWriteTimingStruct.FSMC_AddressHoldTime = 0x00;

          FSMC_ReadWriteTimingStruct.FSMC_DataSetupTime = 0x08;

          FSMC_ReadWriteTimingStruct.FSMC_BusTurnAroundDuration = 0x00;

          FSMC_ReadWriteTimingStruct.FSMC_CLKDivision = 0x00;

          FSMC_ReadWriteTimingStruct.FSMC_DataLatency = 0x00;

          FSMC_ReadWriteTimingStruct.FSMC_AccessMode = FSMC_AccessMode_A;


          fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM3;

          fsmc.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;

          fsmc.FSMC_MemoryType = FSMC_MemoryType_SRAM;

          fsmc.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;

          fsmc.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;

          fsmc.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;

          fsmc.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;

          fsmc.FSMC_WrapMode = FSMC_WrapMode_Disable;

          fsmc.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;

          fsmc.FSMC_WriteOperation = FSMC_WriteOperation_Enable;

          fsmc.FSMC_WaitSignal = FSMC_WaitSignal_Disable;

          fsmc.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; //擴(kuò)展模式使能

          fsmc.FSMC_WriteBurst = FSMC_WriteBurst_Disable;

          fsmc.FSMC_ReadWriteTimingStruct = &FSMC_ReadWriteTimingStruct;

          fsmc.FSMC_WriteTimingStruct = &FSMC_ReadWriteTimingStruct;

          FSMC_NORSRAMInit(&fsmc);


          FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);

      }


      void SRAM_read(u8 *buf, u32 addr, u32 num)

      {

          u32 i = 0;


          for(i = 0; i < num; i++)

          {

              buf[i] = *(u8*)(Bank1_SRAM3_ADDR + addr + i);

          }

      }


      void SRAM_write(u8 *buf, u32 addr, u32 num)

      {

          u32 i = 0;

          u8 *p = (u8*)(Bank1_SRAM3_ADDR + addr);


          for(i = 0; i < num; i++)

          {

              *(p + i) = buf[i];

          }

      }


      上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

      CopyRight 2020-2025 m.topsschool.com All rights reserved   滬ICP備2021005866號

      亚洲精品无码va人在线观看,少妇 逼小 水多,国产区免费av,国产精品无码观看

          污污精品91网站在线观看| 欧美日韩国产在线人成| 亚洲成年网在线观看黄| 国产精品麻豆va在线播放| 国产九九九全国免费视频| 91亚洲人成手机在线观看| 国产高清一区二区三区人妖| 日本免费中文字幕在线视频| 日本精品不在线一区二区色| 日韩精品无码免费专区网站| 中文有码人妻在线| 亚洲欧美二三区视频| 国产精品成久久久久三级午夜电影| 国产成a人片在线观看视频| 99久久中文字幕三级久久日本| 亚洲自偷拍视频中心| 中文字幕不卡精品视频在线| 麻豆精品国产自产在线观看| 97国产自在线拍| 免费 无码 国产在线观看12| 无码专区6080yy国产电影| 丰满人妻熟妇无码区五十路久久| 欧美日韩一木道人妻在线视频| 日本欧美一区二区三区视频| 免费国产午夜视频在线| 乱人伦中文视频在线无码| 免费无码aⅴ免费中文字幕| 日韩欧美亚洲国产成人综合| 亚洲精品一区二区三区新线路|