OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6553|回复: 7

STM32F4与FPGA通过FSMC通信 读写时序

[复制链接]

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-4-15
在线时间
20 小时
发表于 2016-11-18 09:32:35 | 显示全部楼层 |阅读模式
1金钱
相同的读写程序片选时序不同[mw_shl_code=applescript,true]void FSMC_SRAM_WriteBuffer(uint16_t* pBuffer,uint32_t WriteAddr,uint32_t n)
{
//                        WriteAddr = WriteAddr <<1 ;  //FSMC′&#230;′¢&#198;÷êy&#190;Y&#191;í&#182;èéè&#206;a16bitê±£&#172;×ü&#207;&#223;μ&#216;&#214;·×&#212;&#182;ˉóòò&#198;1&#206;&#187;£&#187;òò′&#203;ó&#235;FPGAí¨D&#197;ê±&#189;&#171;μ&#216;&#214;·&#206;&#187;&#207;è×óò&#198;1&#206;&#187;&#161;£
        for(;n!=0;n--)  
        {       
                WriteAddr = WriteAddr <<1 ;
                *(vu16*)(Bank1_SRAM2_ADDR+WriteAddr)=*pBuffer;
                WriteAddr = WriteAddr >>1 ;          
                WriteAddr++;
                (*pBuffer)++;
        }   
}

void FSMC_SRAM_ReadBuffer(uint16_t* pBuffer,uint32_t ReadAddr,uint32_t n)
{
//        ReadAddr = ReadAddr <<1 ;  //&#182;áó&#235;D′&#207;àí&#172;
        for(;n!=0;n--)  
        {               
                ReadAddr = ReadAddr <<1 ;
                *pBuffer++=*(vu16*)(Bank1_SRAM2_ADDR+ReadAddr);
                ReadAddr = ReadAddr >>1 ;
                ReadAddr++;
        }  
}                                                                        [/mw_shl_code]

连续读写4次

连续读写4次
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-4-15
在线时间
20 小时
 楼主| 发表于 2016-11-18 09:45:31 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2016-11-21 23:11:28 | 显示全部楼层
看不出什么问题啊
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-4-15
在线时间
20 小时
 楼主| 发表于 2016-11-28 14:28:29 | 显示全部楼层

现在问题时连续读的时候(这里哦连续读了4次),每读一次片选就会拉低一次,我想要得到的是,连续读片选之拉低一次。
回复

使用道具 举报

3

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2014-7-1
在线时间
76 小时
发表于 2016-11-29 15:21:32 | 显示全部楼层
每读一次片选就会拉低一次  应该就是这样
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-4-15
在线时间
20 小时
 楼主| 发表于 2016-12-2 10:10:17 | 显示全部楼层
shirl 发表于 2016-11-29 15:21
每读一次片选就会拉低一次  应该就是这样

我连续写的时候片选就只拉低一次,连续的话应该也是拉低一次,我看过别人的通信,就是连续的只拉低一次,然后我把别人的程序配置,弄到我这里就不行。
回复

使用道具 举报

5

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2015-6-11
在线时间
3 小时
发表于 2017-6-27 10:18:33 | 显示全部楼层
所以问题解决了没有,我也发现同样的问题了,虽然数据只要在ce低电平阶段有效就可以。
回复

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2019-11-28
在线时间
68 小时
发表于 2020-9-5 12:37:37 | 显示全部楼层
写函数里面(*pBuffer)++ 指针的值++有问题把,不是指针地址++
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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