<dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

    <blockquote id="b4zrn"></blockquote>

      <strike id="b4zrn"></strike>
        1. <div id="b4zrn"><label id="b4zrn"></label></div>
          您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
          4新聞資訊
          您的位置: 首頁 ->  新聞資訊 -> 單片機

          ?stm32 FSMC-外擴SRAM IS62WV51216

          文章出處:單片機 責(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; //擴展模式使能

              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.frontgate.com.cn All rights reserved   滬ICP備2021005866號

          久艹视频在线观看这里只有精品,国语自产拍在线视频普通话94,久久婷婷综合缴情亚洲狠狠,亚洲不卡永远在线精品无码
          <dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

            <blockquote id="b4zrn"></blockquote>

              <strike id="b4zrn"></strike>
                1. <div id="b4zrn"><label id="b4zrn"></label></div>