微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 外部 SRAM

STM32 外部 SRAM

时间:11-11 来源:互联网 点击:

  1. ture.FSMC_WriteOperation=FSMC_WriteOperation_Enable;//存储器写使能
  2. FSMC_NORSRAMInitStructure.FSMC_WaitSignal=FSMC_WaitSignal_Disable;
  3. FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Disable;// 读写使用相同的时序
  4. FSMC_NORSRAMInitStructure.FSMC_WriteBurst=FSMC_WriteBurst_Disable;
  5. FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&readWriteTiming;
  6. FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&readWriteTiming;//读写同样时序
  7. FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);//初始化FSMC配置
  8. FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3,ENABLE);// 使能BANK3
  9. }
  10. //在指定地址开始,连续写入n个字节.
  11. //pBuffer:字节指针
  12. //WriteAddr:要写入的地址
  13. //n:要写入的字节数
  14. voidFSMC_SRAM_WriteBuffer(u8*pBuffer,u32 WriteAddr,u32 n)
  15. {
  16. for(;n!=0;n--)
  17. {
  18. *(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;
  19. WriteAddr+=2;//这里需要加2,是因为STM32的FSMC地址右移一位对其.加2相当于加1.
  20. pBuffer++;
  21. }
  22. }
  23. //在指定地址开始,连续读出n个字节.
  24. //pBuffer:字节指针
  25. //ReadAddr:要读出的起始地址
  26. //n:要写入的字节数
  27. voidFSMC_SRAM_ReadBuffer(u8*pBuffer,u32 ReadAddr,u32 n)
  28. {
  29. for(;n!=0;n--)
  30. {
  31. *pBuffer++=*(vu8*)(Bank1_SRAM3_ADDR+ReadAddr);
  32. ReadAddr+=2;//这里需要加2,是因为STM32的FSMC地址右移一位对其.加2相当于加1.
  33. }
  34. }
  35. ////////////////////////////////////////////////////////////////////////////////////////
  36. //测试函数
  37. //在指定地址写入1个字节
  38. //addr:地址
  39. //data:要写入的数据
  40. voidfsmc_sram_test_write(u8data,u32 addr)
  41. {
  42. FSMC_SRAM_WriteBuffer(&data,addr,1);//写入1个字节
  43. }
  44. //读取1个字节
  45. //addr:要读取的地址
  46. //返回值:读取到的数据
  47. u8 fsmc_sram_test_read(u32 addr)
  48. {
  49. u8data;
  50. FSMC_SRAM_ReadBuffer(&data,addr,1);
  51. returndata;
  52. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top