123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- #ifndef __SRAM_H
- #define __SRAM_H
- #include "stm32f2xx.h"
- #include <stdio.h>
- //使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=10
- //对IS61LV25616/IS62WV25616,地址线范围为A0~A17
- //对IS61LV51216/IS62WV51216,地址线范围为A0~A18
- #define Bank1_SRAM3_ADDR ((uint32_t)(0x68000000))
- #define IS62WV51216_SIZE 0x100000 //512*16/2bits = 0x100000 ,1M字节
- #define FSMC_GPIO_AF GPIO_AF_FSMC
- /*A地址信号线*/
- #define FSMC_A0_GPIO_PORT GPIOF
- #define FSMC_A0_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A0_GPIO_PIN GPIO_Pin_0
- #define FSMC_A0_GPIO_PinSource GPIO_PinSource0
- #define FSMC_A1_GPIO_PORT GPIOF
- #define FSMC_A1_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A1_GPIO_PIN GPIO_Pin_1
- #define FSMC_A1_GPIO_PinSource GPIO_PinSource1
- #define FSMC_A2_GPIO_PORT GPIOF
- #define FSMC_A2_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A2_GPIO_PIN GPIO_Pin_2
- #define FSMC_A2_GPIO_PinSource GPIO_PinSource2
- #define FSMC_A3_GPIO_PORT GPIOF
- #define FSMC_A3_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A3_GPIO_PIN GPIO_Pin_3
- #define FSMC_A3_GPIO_PinSource GPIO_PinSource3
- #define FSMC_A4_GPIO_PORT GPIOF
- #define FSMC_A4_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A4_GPIO_PIN GPIO_Pin_4
- #define FSMC_A4_GPIO_PinSource GPIO_PinSource4
- #define FSMC_A5_GPIO_PORT GPIOF
- #define FSMC_A5_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A5_GPIO_PIN GPIO_Pin_5
- #define FSMC_A5_GPIO_PinSource GPIO_PinSource5
- #define FSMC_A6_GPIO_PORT GPIOF
- #define FSMC_A6_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A6_GPIO_PIN GPIO_Pin_12
- #define FSMC_A6_GPIO_PinSource GPIO_PinSource12
- #define FSMC_A7_GPIO_PORT GPIOF
- #define FSMC_A7_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A7_GPIO_PIN GPIO_Pin_13
- #define FSMC_A7_GPIO_PinSource GPIO_PinSource13
- #define FSMC_A8_GPIO_PORT GPIOF
- #define FSMC_A8_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A8_GPIO_PIN GPIO_Pin_14
- #define FSMC_A8_GPIO_PinSource GPIO_PinSource14
- #define FSMC_A9_GPIO_PORT GPIOF
- #define FSMC_A9_GPIO_CLK RCC_AHB1Periph_GPIOF
- #define FSMC_A9_GPIO_PIN GPIO_Pin_15
- #define FSMC_A9_GPIO_PinSource GPIO_PinSource15
- #define FSMC_A10_GPIO_PORT GPIOG
- #define FSMC_A10_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A10_GPIO_PIN GPIO_Pin_0
- #define FSMC_A10_GPIO_PinSource GPIO_PinSource0
- #define FSMC_A11_GPIO_PORT GPIOG
- #define FSMC_A11_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A11_GPIO_PIN GPIO_Pin_1
- #define FSMC_A11_GPIO_PinSource GPIO_PinSource1
- #define FSMC_A12_GPIO_PORT GPIOG
- #define FSMC_A12_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A12_GPIO_PIN GPIO_Pin_2
- #define FSMC_A12_GPIO_PinSource GPIO_PinSource2
- #define FSMC_A13_GPIO_PORT GPIOG
- #define FSMC_A13_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A13_GPIO_PIN GPIO_Pin_3
- #define FSMC_A13_GPIO_PinSource GPIO_PinSource3
- #define FSMC_A14_GPIO_PORT GPIOG
- #define FSMC_A14_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A14_GPIO_PIN GPIO_Pin_4
- #define FSMC_A14_GPIO_PinSource GPIO_PinSource4
- #define FSMC_A15_GPIO_PORT GPIOG
- #define FSMC_A15_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_A15_GPIO_PIN GPIO_Pin_5
- #define FSMC_A15_GPIO_PinSource GPIO_PinSource5
- #define FSMC_A16_GPIO_PORT GPIOD
- #define FSMC_A16_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_A16_GPIO_PIN GPIO_Pin_11
- #define FSMC_A16_GPIO_PinSource GPIO_PinSource11
- #define FSMC_A17_GPIO_PORT GPIOD
- #define FSMC_A17_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_A17_GPIO_PIN GPIO_Pin_12
- #define FSMC_A17_GPIO_PinSource GPIO_PinSource12
- #define FSMC_A18_GPIO_PORT GPIOD
- #define FSMC_A18_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_A18_GPIO_PIN GPIO_Pin_13
- #define FSMC_A18_GPIO_PinSource GPIO_PinSource13
- /*D 数据信号线*/
- #define FSMC_D0_GPIO_PORT GPIOD
- #define FSMC_D0_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D0_GPIO_PIN GPIO_Pin_14
- #define FSMC_D0_GPIO_PinSource GPIO_PinSource14
- #define FSMC_D1_GPIO_PORT GPIOD
- #define FSMC_D1_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D1_GPIO_PIN GPIO_Pin_15
- #define FSMC_D1_GPIO_PinSource GPIO_PinSource15
- #define FSMC_D2_GPIO_PORT GPIOD
- #define FSMC_D2_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D2_GPIO_PIN GPIO_Pin_0
- #define FSMC_D2_GPIO_PinSource GPIO_PinSource0
- #define FSMC_D3_GPIO_PORT GPIOD
- #define FSMC_D3_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D3_GPIO_PIN GPIO_Pin_1
- #define FSMC_D3_GPIO_PinSource GPIO_PinSource1
- #define FSMC_D4_GPIO_PORT GPIOE
- #define FSMC_D4_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D4_GPIO_PIN GPIO_Pin_7
- #define FSMC_D4_GPIO_PinSource GPIO_PinSource7
- #define FSMC_D5_GPIO_PORT GPIOE
- #define FSMC_D5_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D5_GPIO_PIN GPIO_Pin_8
- #define FSMC_D5_GPIO_PinSource GPIO_PinSource8
- #define FSMC_D6_GPIO_PORT GPIOE
- #define FSMC_D6_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D6_GPIO_PIN GPIO_Pin_9
- #define FSMC_D6_GPIO_PinSource GPIO_PinSource9
- #define FSMC_D7_GPIO_PORT GPIOE
- #define FSMC_D7_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D7_GPIO_PIN GPIO_Pin_10
- #define FSMC_D7_GPIO_PinSource GPIO_PinSource10
- #define FSMC_D8_GPIO_PORT GPIOE
- #define FSMC_D8_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D8_GPIO_PIN GPIO_Pin_11
- #define FSMC_D8_GPIO_PinSource GPIO_PinSource11
- #define FSMC_D9_GPIO_PORT GPIOE
- #define FSMC_D9_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D9_GPIO_PIN GPIO_Pin_12
- #define FSMC_D9_GPIO_PinSource GPIO_PinSource12
- #define FSMC_D10_GPIO_PORT GPIOE
- #define FSMC_D10_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D10_GPIO_PIN GPIO_Pin_13
- #define FSMC_D10_GPIO_PinSource GPIO_PinSource13
- #define FSMC_D11_GPIO_PORT GPIOE
- #define FSMC_D11_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D11_GPIO_PIN GPIO_Pin_14
- #define FSMC_D11_GPIO_PinSource GPIO_PinSource14
- #define FSMC_D12_GPIO_PORT GPIOE
- #define FSMC_D12_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_D12_GPIO_PIN GPIO_Pin_15
- #define FSMC_D12_GPIO_PinSource GPIO_PinSource15
- #define FSMC_D13_GPIO_PORT GPIOD
- #define FSMC_D13_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D13_GPIO_PIN GPIO_Pin_8
- #define FSMC_D13_GPIO_PinSource GPIO_PinSource8
- #define FSMC_D14_GPIO_PORT GPIOD
- #define FSMC_D14_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D14_GPIO_PIN GPIO_Pin_9
- #define FSMC_D14_GPIO_PinSource GPIO_PinSource9
- #define FSMC_D15_GPIO_PORT GPIOD
- #define FSMC_D15_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_D15_GPIO_PIN GPIO_Pin_10
- #define FSMC_D15_GPIO_PinSource GPIO_PinSource10
- /*控制信号线*/
- /*CS片选*/
- /*NE3 ,对应的基地址0x68000000*/
- #define FSMC_CS_GPIO_PORT GPIOG
- #define FSMC_CS_GPIO_CLK RCC_AHB1Periph_GPIOG
- #define FSMC_CS_GPIO_PIN GPIO_Pin_10
- #define FSMC_CS_GPIO_PinSource GPIO_PinSource10
- /*WE写使能*/
- #define FSMC_WE_GPIO_PORT GPIOD
- #define FSMC_WE_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_WE_GPIO_PIN GPIO_Pin_5
- #define FSMC_WE_GPIO_PinSource GPIO_PinSource5
- /*OE读使能*/
- #define FSMC_OE_GPIO_PORT GPIOD
- #define FSMC_OE_GPIO_CLK RCC_AHB1Periph_GPIOD
- #define FSMC_OE_GPIO_PIN GPIO_Pin_4
- #define FSMC_OE_GPIO_PinSource GPIO_PinSource4
- /*UB数据掩码*/
- #define FSMC_UDQM_GPIO_PORT GPIOE
- #define FSMC_UDQM_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_UDQM_GPIO_PIN GPIO_Pin_1
- #define FSMC_UDQM_GPIO_PinSource GPIO_PinSource1
- /*LB数据掩码*/
- #define FSMC_LDQM_GPIO_PORT GPIOE
- #define FSMC_LDQM_GPIO_CLK RCC_AHB1Periph_GPIOE
- #define FSMC_LDQM_GPIO_PIN GPIO_Pin_0
- #define FSMC_LDQM_GPIO_PinSource GPIO_PinSource0
- /*信息输出*/
- #define SRAM_DEBUG_ON 1
- #define SRAM_INFO(fmt,arg...) printf("<<-SRAM-INFO->> "fmt"\n",##arg)
- #define SRAM_ERROR(fmt,arg...) printf("<<-SRAM-ERROR->> "fmt"\n",##arg)
- #define SRAM_DEBUG(fmt,arg...) do{\
- if(SRAM_DEBUG_ON)\
- printf("<<-SRAM-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
- }while(0)
-
- void FSMC_SRAM_Init(void);
- void FSMC_SRAM_WriteBuffer(uint8_t* pBuffer,uint32_t WriteAddr,uint32_t NumHalfwordToWrite);
- void FSMC_SRAM_ReadBuffer(uint8_t* pBuffer,uint32_t ReadAddr,uint32_t NumHalfwordToRead);
- uint8_t SRAM_Test(void);
- void Disable_LCD_CS(void);//F407板 当不使用屏幕时 失能接LCD_CS的脚 防止影响
- #endif
|