发 帖  
原厂入驻New
[问答] STM32如何对NAND FLASH ,NOR FLASH ,SRAM的访问
110 STM32
分享
如题,本人想玩下STM32对NAND FLASH ,NOR FLASH ,SRAM的访问,来熟悉这些器件的应用,不知这里有哪位大侠用STM32玩过这些,可以交流交流。。。
0
2020-5-25 20:04:22   评论 分享淘帖 邀请回答
27个回答
玩了液晶,玩sram就基本一样了.
玩nand和nor我也还没玩过...
2020-5-26 07:52:29 评论

举报

因没玩过SRAM,所以问个弱弱的问题:
1,对于内部SRAM,程序执行时STM32自己管理使用内部SRAM,而对于外部SRAM,STM32是如何把它当作自己的RAM的一部分呢?还是在程序中做什么样的处理?
2020-5-26 07:58:07 评论

举报

2020-5-26 08:08:19 评论

举报

//内存池
u8 mem1base[MEM1_MAX_SIZE];//内部SRAM内存池
u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0X68000000)));//外部SRAM内存池
2020-5-26 08:26:22 评论

举报

原子兄能否说详细点,比如说是否像写TFT液晶一样,写地址,然后写数据;写地址,读数据,是这样吗? 是否类似一个TFT底层驱动就行了?
2020-5-26 08:45:01 评论

举报

没那么麻烦.
用在外部sram的一半是一个大数组,对于数组就用我那种方式定义即可.
不过貌似可以通过其他设置由MDK自己分配.我还不会弄...
2020-5-26 09:04:13 评论

举报

SRAM是最简单的  把SRAM挂在FSMC上  再初始化下FSMC   其他不用管  再就是向外部的某一个地址读写数据就OK了
比如:16bit宽的数据  *(u32 *)0X68000000+ADD(自己的地址)*2(乘2的地址对齐)=0xxxxxx
读就一样的   当然我这样写是不对的  只是大概的意思   (因为*(32 *)后面不能运算 会报错)
2020-5-26 09:16:58 评论

举报

哦,LS两位大概的意思我明白了。就是往外部的SRAM地址写数据读数据。但这里我有一点就是:在内部SRAM,我不用指定任何地址,由MDK自己分配与控制,所以我想,外部的SRAM能不能也能像内部SRAM一样,由MDK自己自由的分配与控制,不用程序员再额外的指定特定的地址呢?如能这样就方便的多了。
2020-5-26 09:30:03 评论

举报

这样应该是可以的。不过我没弄过
应该是在:options for target里面,有个off chip的选项。
2020-5-26 09:37:21 评论

举报

2020-5-26 09:47:37 评论

举报

 一般用at指令.
---------------------------------
什么是AT指令?如何在STM32中使用AT指令呢。。。有百度过。。但不是很明白。。
我试试,完后整个代码放上来!
2020-5-26 10:39:51 评论

举报

/******************************************************************
 - 功能描述:把指定区域的点颜色保存在外部的SRAM中
 - 隶属模块:公开函数模块
 - 函数属性:外部,用户可调用
 - 参数说明:x,y起始坐标
             xsize:宽度
    ysize:高度          
 - 返回说明:无
 ******************************************************************/
void Read_Temp_Color(u16 x,u16 y,u16 xsize,u16 ysize)
{
 u16 i,t;
 u32 tcnt=0,temp;
 for(i=0;i<ysize;i++)
 {
  for(t=0;t<xsize;t++)
  {
   tcnt++;
   temp=SRAM_BLANK_START_ADDR+tcnt*2;
   (*(uint32_t *)temp) = ili9320_GetPoint(x+t,y+i);//读取当前点的颜色值
  }
 }

/******************************************************************
 - 功能描述:把指定区域把外部SRAM中的数据恢复到LCD上
 - 隶属模块:公开函数模块
 - 函数属性:外部,用户可调用
 - 参数说明:x,y起始坐标
             xsize:宽度
    ysize:高度          
 - 返回说明:无
 ******************************************************************/
void Reshow_Temp_Color(u16 x,u16 y,u16 xsize,u16 ysize)
{
 u16 i;
 u32 tcnt=0,temp;
 ili9320_SetWindows(x,y,x+xsize-1,y+ysize-1);
 LCD_WriteCom(0x002c);
 for(i=0;i<xsize*ysize;i++)
 {  
  tcnt++;
  temp=SRAM_BLANK_START_ADDR+tcnt*2;
  LCD_WriteRAM(*(uint32_t *)temp);
 }
}
举个实用的例子!(自己看)    

SRAM.rar (1.13 KB )
2020-5-26 10:56:30 评论

举报

哦,楼上谢谢。目前手头有NOR FLASH,NAND FLASH以及几种规格的TFT,想把这几个完通先。。另外,印象中楼上是搞TFT的,想向你要些驱动,不知可否?
2020-5-26 11:08:33 评论

举报

IC啥型号?最好是原产的初始化 因为那个要校gamma的 比较复杂
2020-5-26 11:28:00 评论

举报

回muc520兄,SPEC上写着“LCD Controller & Driver HX8257”,4.3寸,对了。MUC520兄,看到你以前的帖子说有好多TFT,还有没有7寸的呢,送个给俺玩,还没玩过大尺寸屏。。呵呵。。
2020-5-26 11:43:17 评论

举报

我手上就只有一片了啊
2020-5-26 11:59:39 评论

举报

这个屏用STM32直接驱动不了的  必须加控制器 例如RA8875 SSD1963之类的  我现在用的4.3的屏就是我之前自己做的  驱动IC是HX8257的 STM32——>SSD1963——>TFT 
2020-5-26 12:16:47 评论

举报

只有小组成员才能发言,加入小组>>

12下一页

67个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表