打印

fsmc驱动三个外设,有冲突。

[复制链接]
1927|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qljqlj|  楼主 | 2012-9-12 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32f103vct6,fsmc驱动三个外设,一个是lcd,一个是nand,一个是ch376,其中lcd和ch376是用的sram1,nand用的是nand2,三个单独测试没有问题,但是组合起来,ch376与nand冲突,读写都不正确?为啥?
沙发
airwill| | 2012-9-13 06:25 | 只看该作者
看样子,是跟NE 有关的片选上面出了问题吧
楼主讲讲你的片选怎么处理的?

使用特权

评论回复
板凳
qljqlj|  楼主 | 2012-9-13 09:25 | 只看该作者
使用三个普通gpio,做的片选

使用特权

评论回复
地板
IJK| | 2012-9-13 09:51 | 只看该作者
使用三个普通gpio,做的片选
qljqlj 发表于 2012-9-13 09:25


用普通gpio做片选,确实容易引起冲突。
如果用FSMC的那几个片选,就不容易引起冲突。

当然,用普通gpio做片选,软件上多注意[设置变量,确保每次只访问1个外设],也可以避免冲突。

使用特权

评论回复
5
qljqlj|  楼主 | 2012-9-13 09:59 | 只看该作者
我做了一个实验,顺序读取ch376,nand,ch376没有问题,读取正常,但是到读取nand的时候,我用示波器观察,我发现好像io口和wr没有发出数据来

使用特权

评论回复
6
qljqlj|  楼主 | 2012-9-13 10:01 | 只看该作者
re:ijk
我使用片选,每次都是先片选,后拉高。应该没问题吧
#define         Ch376_WriteCommand(cmd)                {Select_Ch376();LCD_COMM_ADD1 = cmd;NotSelect_Ch376();}
#define         Ch376_WriteData(data)                {Select_Ch376();LCD_DATA_ADD1 = data;NotSelect_Ch376();}

使用特权

评论回复
7
qljqlj|  楼主 | 2012-9-13 10:47 | 只看该作者
找到原因了。是376问题,很久前的一个项目了,376模拟io和fsmc都有,在项目里,使用的是模拟io,很隐蔽,我没有注意到这个文件夹,所以才导致以上问题出现,感谢楼上的兄弟。

使用特权

评论回复
8
hustloong| | 2013-7-12 14:36 | 只看该作者
楼主,能不能把FSMC操作CH376的代码发一份看看,我用FSMC操作后,CH376的初始化一直通不过,可以吗?邮箱:hustloong@163.com

使用特权

评论回复
9
zeluo| | 2013-7-12 19:59 | 只看该作者
不是很了解这一块   楼主  帮你顶一个   看看别人的意见吧   顶一个   不错哦

使用特权

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

本版积分规则

41

主题

134

帖子

3

粉丝