39 #ifndef __STM32F4xx_LL_FSMC_H 40 #define __STM32F4xx_LL_FSMC_H 57 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) 71 uint32_t DataAddressMux;
79 uint32_t MemoryDataWidth;
82 uint32_t BurstAccessMode;
86 uint32_t WaitSignalPolarity;
95 uint32_t WaitSignalActive;
100 uint32_t WriteOperation;
107 uint32_t ExtendedMode;
110 uint32_t AsynchronousWait;
117 uint32_t ContinuousClock;
131 }FSMC_NORSRAM_InitTypeDef;
138 uint32_t AddressSetupTime;
143 uint32_t AddressHoldTime;
148 uint32_t DataSetupTime;
154 uint32_t BusTurnAroundDuration;
159 uint32_t CLKDivision;
164 uint32_t DataLatency;
175 }FSMC_NORSRAM_TimingTypeDef;
177 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 186 uint32_t Waitfeature;
189 uint32_t MemoryDataWidth;
192 uint32_t EccComputation;
195 uint32_t ECCPageSize;
198 uint32_t TCLRSetupTime;
202 uint32_t TARSetupTime;
206 }FSMC_NAND_InitTypeDef;
219 uint32_t WaitSetupTime;
225 uint32_t HoldSetupTime;
232 uint32_t HiZSetupTime;
238 }FSMC_NAND_PCC_TimingTypeDef;
245 uint32_t Waitfeature;
248 uint32_t TCLRSetupTime;
252 uint32_t TARSetupTime;
256 }FSMC_PCCARD_InitTypeDef;
273 #define FSMC_NORSRAM_BANK1 ((uint32_t)0x00000000U) 274 #define FSMC_NORSRAM_BANK2 ((uint32_t)0x00000002U) 275 #define FSMC_NORSRAM_BANK3 ((uint32_t)0x00000004U) 276 #define FSMC_NORSRAM_BANK4 ((uint32_t)0x00000006U) 284 #define FSMC_DATA_ADDRESS_MUX_DISABLE ((uint32_t)0x00000000U) 285 #define FSMC_DATA_ADDRESS_MUX_ENABLE ((uint32_t)0x00000002U) 293 #define FSMC_MEMORY_TYPE_SRAM ((uint32_t)0x00000000U) 294 #define FSMC_MEMORY_TYPE_PSRAM ((uint32_t)0x00000004U) 295 #define FSMC_MEMORY_TYPE_NOR ((uint32_t)0x00000008U) 303 #define FSMC_NORSRAM_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000U) 304 #define FSMC_NORSRAM_MEM_BUS_WIDTH_16 ((uint32_t)0x00000010U) 305 #define FSMC_NORSRAM_MEM_BUS_WIDTH_32 ((uint32_t)0x00000020U) 313 #define FSMC_NORSRAM_FLASH_ACCESS_ENABLE ((uint32_t)0x00000040U) 314 #define FSMC_NORSRAM_FLASH_ACCESS_DISABLE ((uint32_t)0x00000000U) 322 #define FSMC_BURST_ACCESS_MODE_DISABLE ((uint32_t)0x00000000U) 323 #define FSMC_BURST_ACCESS_MODE_ENABLE ((uint32_t)0x00000100U) 331 #define FSMC_WAIT_SIGNAL_POLARITY_LOW ((uint32_t)0x00000000U) 332 #define FSMC_WAIT_SIGNAL_POLARITY_HIGH ((uint32_t)0x00000200U) 341 #define FSMC_WRAP_MODE_DISABLE ((uint32_t)0x00000000U) 342 #define FSMC_WRAP_MODE_ENABLE ((uint32_t)0x00000400U) 350 #define FSMC_WAIT_TIMING_BEFORE_WS ((uint32_t)0x00000000U) 351 #define FSMC_WAIT_TIMING_DURING_WS ((uint32_t)0x00000800U) 359 #define FSMC_WRITE_OPERATION_DISABLE ((uint32_t)0x00000000U) 360 #define FSMC_WRITE_OPERATION_ENABLE ((uint32_t)0x00001000U) 368 #define FSMC_WAIT_SIGNAL_DISABLE ((uint32_t)0x00000000U) 369 #define FSMC_WAIT_SIGNAL_ENABLE ((uint32_t)0x00002000U) 377 #define FSMC_EXTENDED_MODE_DISABLE ((uint32_t)0x00000000U) 378 #define FSMC_EXTENDED_MODE_ENABLE ((uint32_t)0x00004000U) 386 #define FSMC_ASYNCHRONOUS_WAIT_DISABLE ((uint32_t)0x00000000U) 387 #define FSMC_ASYNCHRONOUS_WAIT_ENABLE ((uint32_t)0x00008000U) 395 #define FSMC_PAGE_SIZE_NONE ((uint32_t)0x00000000U) 396 #define FSMC_PAGE_SIZE_128 ((uint32_t)FSMC_BCR1_CPSIZE_0) 397 #define FSMC_PAGE_SIZE_256 ((uint32_t)FSMC_BCR1_CPSIZE_1) 398 #define FSMC_PAGE_SIZE_512 ((uint32_t)(FSMC_BCR1_CPSIZE_0 | FSMC_BCR1_CPSIZE_1)) 399 #define FSMC_PAGE_SIZE_1024 ((uint32_t)FSMC_BCR1_CPSIZE_2) 408 #define FSMC_WRITE_FIFO_DISABLE ((uint32_t)FSMC_BCR1_WFDIS) 409 #define FSMC_WRITE_FIFO_ENABLE ((uint32_t)0x00000000U) 417 #define FSMC_WRITE_BURST_DISABLE ((uint32_t)0x00000000U) 418 #define FSMC_WRITE_BURST_ENABLE ((uint32_t)0x00080000U) 427 #define FSMC_CONTINUOUS_CLOCK_SYNC_ONLY ((uint32_t)0x00000000U) 428 #define FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC ((uint32_t)0x00100000U) 436 #define FSMC_ACCESS_MODE_A ((uint32_t)0x00000000U) 437 #define FSMC_ACCESS_MODE_B ((uint32_t)0x10000000U) 438 #define FSMC_ACCESS_MODE_C ((uint32_t)0x20000000U) 439 #define FSMC_ACCESS_MODE_D ((uint32_t)0x30000000U) 447 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 454 #define FSMC_NAND_BANK2 ((uint32_t)0x00000010U) 455 #define FSMC_NAND_BANK3 ((uint32_t)0x00000100U) 463 #define FSMC_NAND_PCC_WAIT_FEATURE_DISABLE ((uint32_t)0x00000000U) 464 #define FSMC_NAND_PCC_WAIT_FEATURE_ENABLE ((uint32_t)0x00000002U) 472 #define FSMC_PCR_MEMORY_TYPE_PCCARD ((uint32_t)0x00000000U) 473 #define FSMC_PCR_MEMORY_TYPE_NAND ((uint32_t)0x00000008U) 481 #define FSMC_NAND_PCC_MEM_BUS_WIDTH_8 ((uint32_t)0x00000000U) 482 #define FSMC_NAND_PCC_MEM_BUS_WIDTH_16 ((uint32_t)0x00000010U) 490 #define FSMC_NAND_ECC_DISABLE ((uint32_t)0x00000000U) 491 #define FSMC_NAND_ECC_ENABLE ((uint32_t)0x00000040U) 499 #define FSMC_NAND_ECC_PAGE_SIZE_256BYTE ((uint32_t)0x00000000U) 500 #define FSMC_NAND_ECC_PAGE_SIZE_512BYTE ((uint32_t)0x00020000U) 501 #define FSMC_NAND_ECC_PAGE_SIZE_1024BYTE ((uint32_t)0x00040000U) 502 #define FSMC_NAND_ECC_PAGE_SIZE_2048BYTE ((uint32_t)0x00060000U) 503 #define FSMC_NAND_ECC_PAGE_SIZE_4096BYTE ((uint32_t)0x00080000U) 504 #define FSMC_NAND_ECC_PAGE_SIZE_8192BYTE ((uint32_t)0x000A0000U) 516 #define FSMC_IT_RISING_EDGE ((uint32_t)0x00000008U) 517 #define FSMC_IT_LEVEL ((uint32_t)0x00000010U) 518 #define FSMC_IT_FALLING_EDGE ((uint32_t)0x00000020U) 519 #define FSMC_IT_REFRESH_ERROR ((uint32_t)0x00004000U) 527 #define FSMC_FLAG_RISING_EDGE ((uint32_t)0x00000001U) 528 #define FSMC_FLAG_LEVEL ((uint32_t)0x00000002U) 529 #define FSMC_FLAG_FALLING_EDGE ((uint32_t)0x00000004U) 530 #define FSMC_FLAG_FEMPT ((uint32_t)0x00000040U) 538 #define FSMC_NORSRAM_TypeDef FSMC_Bank1_TypeDef 539 #define FSMC_NORSRAM_EXTENDED_TypeDef FSMC_Bank1E_TypeDef 540 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 541 #define FSMC_NAND_TypeDef FSMC_Bank2_3_TypeDef 542 #define FSMC_PCCARD_TypeDef FSMC_Bank4_TypeDef 545 #define FSMC_NORSRAM_DEVICE FSMC_Bank1 546 #define FSMC_NORSRAM_EXTENDED_DEVICE FSMC_Bank1E 547 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 548 #define FSMC_NAND_DEVICE FSMC_Bank2_3 549 #define FSMC_PCCARD_DEVICE FSMC_Bank4 552 #define FMC_NORSRAM_MEM_BUS_WIDTH_8 FSMC_NORSRAM_MEM_BUS_WIDTH_8 553 #define FMC_NORSRAM_MEM_BUS_WIDTH_16 FSMC_NORSRAM_MEM_BUS_WIDTH_16 554 #define FMC_NORSRAM_MEM_BUS_WIDTH_32 FSMC_NORSRAM_MEM_BUS_WIDTH_32 556 #define FMC_NORSRAM_TypeDef FSMC_NORSRAM_TypeDef 557 #define FMC_NORSRAM_EXTENDED_TypeDef FSMC_NORSRAM_EXTENDED_TypeDef 558 #define FMC_NORSRAM_InitTypeDef FSMC_NORSRAM_InitTypeDef 559 #define FMC_NORSRAM_TimingTypeDef FSMC_NORSRAM_TimingTypeDef 561 #define FMC_NORSRAM_Init FSMC_NORSRAM_Init 562 #define FMC_NORSRAM_Timing_Init FSMC_NORSRAM_Timing_Init 563 #define FMC_NORSRAM_Extended_Timing_Init FSMC_NORSRAM_Extended_Timing_Init 564 #define FMC_NORSRAM_DeInit FSMC_NORSRAM_DeInit 565 #define FMC_NORSRAM_WriteOperation_Enable FSMC_NORSRAM_WriteOperation_Enable 566 #define FMC_NORSRAM_WriteOperation_Disable FSMC_NORSRAM_WriteOperation_Disable 568 #define __FMC_NORSRAM_ENABLE __FSMC_NORSRAM_ENABLE 569 #define __FMC_NORSRAM_DISABLE __FSMC_NORSRAM_DISABLE 571 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 572 #define FMC_NAND_InitTypeDef FSMC_NAND_InitTypeDef 573 #define FMC_PCCARD_InitTypeDef FSMC_PCCARD_InitTypeDef 574 #define FMC_NAND_PCC_TimingTypeDef FSMC_NAND_PCC_TimingTypeDef 576 #define FMC_NAND_Init FSMC_NAND_Init 577 #define FMC_NAND_CommonSpace_Timing_Init FSMC_NAND_CommonSpace_Timing_Init 578 #define FMC_NAND_AttributeSpace_Timing_Init FSMC_NAND_AttributeSpace_Timing_Init 579 #define FMC_NAND_DeInit FSMC_NAND_DeInit 580 #define FMC_NAND_ECC_Enable FSMC_NAND_ECC_Enable 581 #define FMC_NAND_ECC_Disable FSMC_NAND_ECC_Disable 582 #define FMC_NAND_GetECC FSMC_NAND_GetECC 583 #define FMC_PCCARD_Init FSMC_PCCARD_Init 584 #define FMC_PCCARD_CommonSpace_Timing_Init FSMC_PCCARD_CommonSpace_Timing_Init 585 #define FMC_PCCARD_AttributeSpace_Timing_Init FSMC_PCCARD_AttributeSpace_Timing_Init 586 #define FMC_PCCARD_IOSpace_Timing_Init FSMC_PCCARD_IOSpace_Timing_Init 587 #define FMC_PCCARD_DeInit FSMC_PCCARD_DeInit 589 #define __FMC_NAND_ENABLE __FSMC_NAND_ENABLE 590 #define __FMC_NAND_DISABLE __FSMC_NAND_DISABLE 591 #define __FMC_PCCARD_ENABLE __FSMC_PCCARD_ENABLE 592 #define __FMC_PCCARD_DISABLE __FSMC_PCCARD_DISABLE 593 #define __FMC_NAND_ENABLE_IT __FSMC_NAND_ENABLE_IT 594 #define __FMC_NAND_DISABLE_IT __FSMC_NAND_DISABLE_IT 595 #define __FMC_NAND_GET_FLAG __FSMC_NAND_GET_FLAG 596 #define __FMC_NAND_CLEAR_FLAG __FSMC_NAND_CLEAR_FLAG 597 #define __FMC_PCCARD_ENABLE_IT __FSMC_PCCARD_ENABLE_IT 598 #define __FMC_PCCARD_DISABLE_IT __FSMC_PCCARD_DISABLE_IT 599 #define __FMC_PCCARD_GET_FLAG __FSMC_PCCARD_GET_FLAG 600 #define __FMC_PCCARD_CLEAR_FLAG __FSMC_PCCARD_CLEAR_FLAG 603 #define FMC_NORSRAM_TypeDef FSMC_NORSRAM_TypeDef 604 #define FMC_NORSRAM_EXTENDED_TypeDef FSMC_NORSRAM_EXTENDED_TypeDef 605 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 606 #define FMC_NAND_TypeDef FSMC_NAND_TypeDef 607 #define FMC_PCCARD_TypeDef FSMC_PCCARD_TypeDef 610 #define FMC_NORSRAM_DEVICE FSMC_NORSRAM_DEVICE 611 #define FMC_NORSRAM_EXTENDED_DEVICE FSMC_NORSRAM_EXTENDED_DEVICE 612 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 613 #define FMC_NAND_DEVICE FSMC_NAND_DEVICE 614 #define FMC_PCCARD_DEVICE FSMC_PCCARD_DEVICE 616 #define FMC_NAND_BANK2 FSMC_NAND_BANK2 619 #define FMC_NORSRAM_BANK1 FSMC_NORSRAM_BANK1 620 #define FMC_NORSRAM_BANK2 FSMC_NORSRAM_BANK2 621 #define FMC_NORSRAM_BANK3 FSMC_NORSRAM_BANK3 623 #define FMC_IT_RISING_EDGE FSMC_IT_RISING_EDGE 624 #define FMC_IT_LEVEL FSMC_IT_LEVEL 625 #define FMC_IT_FALLING_EDGE FSMC_IT_FALLING_EDGE 626 #define FMC_IT_REFRESH_ERROR FSMC_IT_REFRESH_ERROR 628 #define FMC_FLAG_RISING_EDGE FSMC_FLAG_RISING_EDGE 629 #define FMC_FLAG_LEVEL FSMC_FLAG_LEVEL 630 #define FMC_FLAG_FALLING_EDGE FSMC_FLAG_FALLING_EDGE 631 #define FMC_FLAG_FEMPT FSMC_FLAG_FEMPT 655 #define __FSMC_NORSRAM_ENABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] |= FSMC_BCR1_MBKEN) 663 #define __FSMC_NORSRAM_DISABLE(__INSTANCE__, __BANK__) ((__INSTANCE__)->BTCR[(__BANK__)] &= ~FSMC_BCR1_MBKEN) 672 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 679 #define __FSMC_NAND_ENABLE(__INSTANCE__, __BANK__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 |= FSMC_PCR2_PBKEN): \ 680 ((__INSTANCE__)->PCR3 |= FSMC_PCR3_PBKEN)) 688 #define __FSMC_NAND_DISABLE(__INSTANCE__, __BANK__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->PCR2 &= ~FSMC_PCR2_PBKEN): \ 689 ((__INSTANCE__)->PCR3 &= ~FSMC_PCR3_PBKEN)) 703 #define __FSMC_PCCARD_ENABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 |= FSMC_PCR4_PBKEN) 710 #define __FSMC_PCCARD_DISABLE(__INSTANCE__) ((__INSTANCE__)->PCR4 &= ~FSMC_PCR4_PBKEN) 730 #define __FSMC_NAND_ENABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 |= (__INTERRUPT__)): \ 731 ((__INSTANCE__)->SR3 |= (__INTERRUPT__))) 744 #define __FSMC_NAND_DISABLE_IT(__INSTANCE__, __BANK__, __INTERRUPT__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__INTERRUPT__)): \ 745 ((__INSTANCE__)->SR3 &= ~(__INTERRUPT__))) 759 #define __FSMC_NAND_GET_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__BANK__) == FSMC_NAND_BANK2)? (((__INSTANCE__)->SR2 &(__FLAG__)) == (__FLAG__)): \ 760 (((__INSTANCE__)->SR3 &(__FLAG__)) == (__FLAG__))) 774 #define __FSMC_NAND_CLEAR_FLAG(__INSTANCE__, __BANK__, __FLAG__) (((__BANK__) == FSMC_NAND_BANK2)? ((__INSTANCE__)->SR2 &= ~(__FLAG__)): \ 775 ((__INSTANCE__)->SR3 &= ~(__FLAG__))) 787 #define __FSMC_PCCARD_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR4 |= (__INTERRUPT__)) 799 #define __FSMC_PCCARD_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->SR4 &= ~(__INTERRUPT__)) 812 #define __FSMC_PCCARD_GET_FLAG(__INSTANCE__, __FLAG__) (((__INSTANCE__)->SR4 &(__FLAG__)) == (__FLAG__)) 825 #define __FSMC_PCCARD_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->SR4 &= ~(__FLAG__)) 834 #define IS_FSMC_NORSRAM_BANK(__BANK__) (((__BANK__) == FSMC_NORSRAM_BANK1) || \ 835 ((__BANK__) == FSMC_NORSRAM_BANK2) || \ 836 ((__BANK__) == FSMC_NORSRAM_BANK3) || \ 837 ((__BANK__) == FSMC_NORSRAM_BANK4)) 839 #define IS_FSMC_MUX(__MUX__) (((__MUX__) == FSMC_DATA_ADDRESS_MUX_DISABLE) || \ 840 ((__MUX__) == FSMC_DATA_ADDRESS_MUX_ENABLE)) 842 #define IS_FSMC_MEMORY(__MEMORY__) (((__MEMORY__) == FSMC_MEMORY_TYPE_SRAM) || \ 843 ((__MEMORY__) == FSMC_MEMORY_TYPE_PSRAM)|| \ 844 ((__MEMORY__) == FSMC_MEMORY_TYPE_NOR)) 846 #define IS_FSMC_NORSRAM_MEMORY_WIDTH(__WIDTH__) (((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_8) || \ 847 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_16) || \ 848 ((__WIDTH__) == FSMC_NORSRAM_MEM_BUS_WIDTH_32)) 850 #define IS_FSMC_ACCESS_MODE(__MODE__) (((__MODE__) == FSMC_ACCESS_MODE_A) || \ 851 ((__MODE__) == FSMC_ACCESS_MODE_B) || \ 852 ((__MODE__) == FSMC_ACCESS_MODE_C) || \ 853 ((__MODE__) == FSMC_ACCESS_MODE_D)) 855 #define IS_FSMC_NAND_BANK(BANK) (((BANK) == FSMC_NAND_BANK2) || \ 856 ((BANK) == FSMC_NAND_BANK3)) 858 #define IS_FSMC_WAIT_FEATURE(FEATURE) (((FEATURE) == FSMC_NAND_PCC_WAIT_FEATURE_DISABLE) || \ 859 ((FEATURE) == FSMC_NAND_PCC_WAIT_FEATURE_ENABLE)) 861 #define IS_FSMC_NAND_MEMORY_WIDTH(WIDTH) (((WIDTH) == FSMC_NAND_PCC_MEM_BUS_WIDTH_8) || \ 862 ((WIDTH) == FSMC_NAND_PCC_MEM_BUS_WIDTH_16)) 864 #define IS_FSMC_ECC_STATE(STATE) (((STATE) == FSMC_NAND_ECC_DISABLE) || \ 865 ((STATE) == FSMC_NAND_ECC_ENABLE)) 867 #define IS_FSMC_ECCPAGE_SIZE(SIZE) (((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_256BYTE) || \ 868 ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_512BYTE) || \ 869 ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_1024BYTE) || \ 870 ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_2048BYTE) || \ 871 ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_4096BYTE) || \ 872 ((SIZE) == FSMC_NAND_ECC_PAGE_SIZE_8192BYTE)) 874 #define IS_FSMC_TCLR_TIME(TIME) ((TIME) <= 255U) 876 #define IS_FSMC_TAR_TIME(TIME) ((TIME) <= 255U) 878 #define IS_FSMC_SETUP_TIME(TIME) ((TIME) <= 255U) 880 #define IS_FSMC_WAIT_TIME(TIME) ((TIME) <= 255U) 882 #define IS_FSMC_HOLD_TIME(TIME) ((TIME) <= 255U) 884 #define IS_FSMC_HIZ_TIME(TIME) ((TIME) <= 255U) 886 #define IS_FSMC_NORSRAM_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_DEVICE) 888 #define IS_FSMC_NORSRAM_EXTENDED_DEVICE(__INSTANCE__) ((__INSTANCE__) == FSMC_NORSRAM_EXTENDED_DEVICE) 890 #define IS_FSMC_NAND_DEVICE(INSTANCE) ((INSTANCE) == FSMC_NAND_DEVICE) 892 #define IS_FSMC_PCCARD_DEVICE(INSTANCE) ((INSTANCE) == FSMC_PCCARD_DEVICE) 894 #define IS_FSMC_BURSTMODE(__STATE__) (((__STATE__) == FSMC_BURST_ACCESS_MODE_DISABLE) || \ 895 ((__STATE__) == FSMC_BURST_ACCESS_MODE_ENABLE)) 897 #define IS_FSMC_WAIT_POLARITY(__POLARITY__) (((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_LOW) || \ 898 ((__POLARITY__) == FSMC_WAIT_SIGNAL_POLARITY_HIGH)) 900 #define IS_FSMC_WRAP_MODE(__MODE__) (((__MODE__) == FSMC_WRAP_MODE_DISABLE) || \ 901 ((__MODE__) == FSMC_WRAP_MODE_ENABLE)) 903 #define IS_FSMC_WAIT_SIGNAL_ACTIVE(__ACTIVE__) (((__ACTIVE__) == FSMC_WAIT_TIMING_BEFORE_WS) || \ 904 ((__ACTIVE__) == FSMC_WAIT_TIMING_DURING_WS)) 906 #define IS_FSMC_WRITE_OPERATION(__OPERATION__) (((__OPERATION__) == FSMC_WRITE_OPERATION_DISABLE) || \ 907 ((__OPERATION__) == FSMC_WRITE_OPERATION_ENABLE)) 909 #define IS_FSMC_WAITE_SIGNAL(__SIGNAL__) (((__SIGNAL__) == FSMC_WAIT_SIGNAL_DISABLE) || \ 910 ((__SIGNAL__) == FSMC_WAIT_SIGNAL_ENABLE)) 912 #define IS_FSMC_EXTENDED_MODE(__MODE__) (((__MODE__) == FSMC_EXTENDED_MODE_DISABLE) || \ 913 ((__MODE__) == FSMC_EXTENDED_MODE_ENABLE)) 915 #define IS_FSMC_ASYNWAIT(__STATE__) (((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_DISABLE) || \ 916 ((__STATE__) == FSMC_ASYNCHRONOUS_WAIT_ENABLE)) 918 #define IS_FSMC_DATA_LATENCY(__LATENCY__) (((__LATENCY__) > 1U) && ((__LATENCY__) <= 17U)) 920 #define IS_FSMC_WRITE_BURST(__BURST__) (((__BURST__) == FSMC_WRITE_BURST_DISABLE) || \ 921 ((__BURST__) == FSMC_WRITE_BURST_ENABLE)) 923 #define IS_FSMC_ADDRESS_SETUP_TIME(__TIME__) ((__TIME__) <= 15U) 925 #define IS_FSMC_ADDRESS_HOLD_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 15U)) 927 #define IS_FSMC_DATASETUP_TIME(__TIME__) (((__TIME__) > 0U) && ((__TIME__) <= 255U)) 929 #define IS_FSMC_TURNAROUND_TIME(__TIME__) ((__TIME__) <= 15U) 931 #define IS_FSMC_CONTINOUS_CLOCK(CCLOCK) (((CCLOCK) == FSMC_CONTINUOUS_CLOCK_SYNC_ONLY) || \ 932 ((CCLOCK) == FSMC_CONTINUOUS_CLOCK_SYNC_ASYNC)) 934 #define IS_FSMC_CLK_DIV(DIV) (((DIV) > 1U) && ((DIV) <= 16U)) 936 #define IS_FSMC_PAGESIZE(SIZE) (((SIZE) == FSMC_PAGE_SIZE_NONE) || \ 937 ((SIZE) == FSMC_PAGE_SIZE_128) || \ 938 ((SIZE) == FSMC_PAGE_SIZE_256) || \ 939 ((SIZE) == FSMC_PAGE_SIZE_1024)) 941 #define IS_FSMC_WRITE_FIFO(FIFO) (((FIFO) == FSMC_WRITE_FIFO_DISABLE) || \ 942 ((FIFO) == FSMC_WRITE_FIFO_ENABLE)) 963 HAL_StatusTypeDef FSMC_NORSRAM_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_InitTypeDef *Init);
964 HAL_StatusTypeDef FSMC_NORSRAM_Timing_Init(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank);
965 HAL_StatusTypeDef FSMC_NORSRAM_Extended_Timing_Init(FSMC_NORSRAM_EXTENDED_TypeDef *Device, FSMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode);
966 HAL_StatusTypeDef FSMC_NORSRAM_DeInit(FSMC_NORSRAM_TypeDef *Device, FSMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank);
974 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Enable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank);
975 HAL_StatusTypeDef FSMC_NORSRAM_WriteOperation_Disable(FSMC_NORSRAM_TypeDef *Device, uint32_t Bank);
983 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 990 HAL_StatusTypeDef FSMC_NAND_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_InitTypeDef *Init);
991 HAL_StatusTypeDef FSMC_NAND_CommonSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
992 HAL_StatusTypeDef FSMC_NAND_AttributeSpace_Timing_Init(FSMC_NAND_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank);
1001 HAL_StatusTypeDef FSMC_NAND_ECC_Enable(FSMC_NAND_TypeDef *Device, uint32_t Bank);
1002 HAL_StatusTypeDef FSMC_NAND_ECC_Disable(FSMC_NAND_TypeDef *Device, uint32_t Bank);
1003 HAL_StatusTypeDef FSMC_NAND_GetECC(FSMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout);
1017 HAL_StatusTypeDef FSMC_PCCARD_Init(FSMC_PCCARD_TypeDef *Device, FSMC_PCCARD_InitTypeDef *Init);
1018 HAL_StatusTypeDef FSMC_PCCARD_CommonSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing);
1019 HAL_StatusTypeDef FSMC_PCCARD_AttributeSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing);
1020 HAL_StatusTypeDef FSMC_PCCARD_IOSpace_Timing_Init(FSMC_PCCARD_TypeDef *Device, FSMC_NAND_PCC_TimingTypeDef *Timing);
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57