stm32 FSMC-外扩SRAM IS62WV51216
来源:互联网 发布:java输出倒三角 编辑:程序博客网 时间:2024/06/06 08:57
引脚定义
FSMC配置步骤
1.使能对应引脚GPIO时钟
2.配置GPIO引脚模式
3.使能FSMC时钟
4.FSMC初始化
5.存储器块使能
举例
#define Bank1_SRAM3_ADDR ((u32)(0x68000000)) //首地址0x60000000,每块0x40000000void 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]; }}
阅读全文
1 0
- stm32 FSMC-外扩SRAM IS62WV51216
- FSMC+SRAM+IS62WV51216
- stm32 fsmc 外扩 sram
- STM32-FSMC-SRAM
- STM32 FSMC 外部使用SRAM
- STM32使用FSMC控制sram例程
- STM32单片机用FSMC接口控制SRAM
- STM32 外扩 SRAM
- stm32 fsmc
- STM32(FSMC)和LPC2214(EMC)驱动"CPLD+SRAM 4.3寸(PSP)专驱动器"
- STM32-FSMC-NOR FLASH
- STM32 FSMC学习笔记
- stm32 fsmc 功能讲解
- STM32 FSMC 总结
- STM32笔记之FSMC
- STM32 FSMC学习笔记
- stm32 FSMC LCD
- STM32笔记之FSMC
- 对Java代理模式的理解
- scrapy创建爬虫项目
- 【学生】优化-数据库为空处理
- 【Data_Structure笔记3】排序算法之插入排序常见的三种算法
- Python 生成器
- stm32 FSMC-外扩SRAM IS62WV51216
- Python 正确重载运算符
- 【盘点】9月值得参加的大数据大会相关会议
- c/c++易错知识点3(引用和指针)(二)
- SQL 语句的使用
- JVM原理
- hdu-3249-Girls' research -mancher
- Leaflet加载百度题图
- VisualSVN-Server-2.7.5安装教程