打印
[STM32F1]

FSMC读8位内存出错,请教大家

[复制链接]
875|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2022-1-1 20:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用FSMC经验不足,现使用FSMC读取8bit 外部RAM,读到的数据有错位且只有第一次是正确的的,求教大家,谢谢大家帮忙指正

使用特权

评论回复
沙发
shimx|  楼主 | 2022-1-1 20:07 | 只看该作者

使用特权

评论回复
板凳
shimx|  楼主 | 2022-1-1 20:09 | 只看该作者
如上图: CE接NE2,所以CS地址空间是:BANK2:6400 0000 --- 67ff ffff ;
FSMC 配置如下(根据官方代码修改):

使用特权

评论回复
地板
shimx|  楼主 | 2022-1-1 20:14 | 只看该作者

使用特权

评论回复
5
chuxh| | 2022-1-1 20:24 | 只看该作者
读数据:

uint8_t data = 0x55 ;
  /* Write data to the SRAM memory */
  for(uwIndex = 0; uwIndex < 3; uwIndex++)
  {
    *(__IO uint8_t *)(0x64000000 + uwIndex) = data;
   printf ( "FSMC read buffer[%d] fill = %x , \r\n" , uwIndex , data );
  }

  /* Read back data from the SRAM memory */
  for(uwIndex = 0; uwIndex < 3; uwIndex++)
  {
    aRxBuffer[uwIndex] = *(__IO uint8_t *)(0x64000000 +  uwIndex);
   printf ( "FSMC read buffer[%d] READ = %x , \r\n" , uwIndex , aRxBuffer[uwIndex] );
  }
        
uint8_t volatile *Test1,*Test2;
Test1=(uint8_t *)0x64000100;
*Test1++=0x99;
printf ( "FSMC read buffer3 = %x , \r\n" , *(volatile uint8_t *)0x64000100 );
printf ( "FSMC read buffer3 = %x , \r\n" , *(volatile uint8_t *)0x64000100 );        


打印出数据为:
FSMC read buffer[0] fill = 55 ,
FSMC read buffer[1] fill = 55 ,
FSMC read buffer[2] fill = 55 ,
FSMC read buffer[0] READ = 5 ,
FSMC read buffer[1] READ = 5 ,
FSMC read buffer[2] READ = 5 ,
FSMC read buffer3 = 99 ,
FSMC read buffer3 = 1 ,


请问大家问题出在哪里?始终没搞懂

使用特权

评论回复
6
supernan| | 2022-1-1 20:30 | 只看该作者
貌似你的地址线不对呀

使用特权

评论回复
7
huangchui| | 2022-1-1 20:32 | 只看该作者
你是STM32F1具体什么型号?多少脚的?

使用特权

评论回复
8
huangchui| | 2022-1-1 20:36 | 只看该作者
硬件连接可以参考下ST官方的评估板的原理图接法,软件可以参考下ST的FSMC例程。

使用特权

评论回复
9
xxrs| | 2022-1-1 20:39 | 只看该作者
现在用的是STM32F103ZET6;LQFP144
我看了官方例程,官方例程是16bit SDRAM , 我这边现在是8bit SDRAM ,其他的处理就是地址线引脚

使用特权

评论回复
10
shimx|  楼主 | 2022-1-1 20:43 | 只看该作者
我现在改动的也就是上面几点;仍然搞不明白还有什么地方不对;

使用特权

评论回复
11
shimx|  楼主 | 2022-1-1 20:46 | 只看该作者
硬件那边说对于RAM是地址寻址,方便走线是可以的;

使用特权

评论回复
12
huangchui| | 2022-1-1 20:50 | 只看该作者
应该是我看错了

使用特权

评论回复
13
chuxh| | 2022-1-1 20:52 | 只看该作者
时序先调保守些

使用特权

评论回复
14
juventus9554| | 2022-1-1 20:52 | 只看该作者
是SRAM吧,

你现在8位数据宽带,例程16位,地址这个地方你要注意,他做了1位偏移,你现在就不用做了。

使用特权

评论回复
15
huangchui| | 2022-1-1 21:00 | 只看该作者
先把速度降下来试试看

使用特权

评论回复
16
shimx|  楼主 | 2022-1-1 21:03 | 只看该作者

嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝