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

[复制链接]
3036|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个外设],也可以避免冲突。
 楼主| qljqlj 发表于 2012-9-13 09:59 | 显示全部楼层
我做了一个实验,顺序读取ch376,nand,ch376没有问题,读取正常,但是到读取nand的时候,我用示波器观察,我发现好像io口和wr没有发出数据来
 楼主| 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();}
 楼主| qljqlj 发表于 2012-9-13 10:47 | 显示全部楼层
找到原因了。是376问题,很久前的一个项目了,376模拟io和fsmc都有,在项目里,使用的是模拟io,很隐蔽,我没有注意到这个文件夹,所以才导致以上问题出现,感谢楼上的兄弟。
hustloong 发表于 2013-7-12 14:36 | 显示全部楼层
楼主,能不能把FSMC操作CH376的代码发一份看看,我用FSMC操作后,CH376的初始化一直通不过,可以吗?邮箱:hustloong@163.com
zeluo 发表于 2013-7-12 19:59 | 显示全部楼层
不是很了解这一块   楼主  帮你顶一个   看看别人的意见吧   顶一个   不错哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

134

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部