UPGRADE YOUR BROWSER
We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!
修改时间 01-29-2019 02:50 PM
本人初次接触软核,然后驱动iic,已经确定时钟复位都没有问题,硬件电路也测试没有问题,从器件也没有问题
按照官方历程拷贝了iic驱动的c代码,没有错误,也没有警告,
但是程序下载进去,现象是程序一直正常运行,从器件没有数据,示波器显示SCL SDA一直为高
以下是主要代码,很简单都是从历程拷贝过来的,自己写了函数体,希望能得到一个思路或者具体解决方案
(附件是源代码)
main函数中执行的是器件以及iic的初始化
下面这个函数是配置器件的初始化,其中包含一个iic初始化函数(iic_init),其他函数是历程
下面这个函数是iic初始化的函数,以及设置从机地址
下面这个函数是发送数据的主体
修改时间 01-29-2019 04:56 PM
比较底层的代码都是直接执行汇编的,看不懂....我推理是下图中的地方出了问题,我把它注释掉,重新初始化一遍后可以通过,不知道这样可以不
但是 接下来 I2C_SetupInterruptSystem(&Intc,&Iic)函数中的这个地方又返回了失败,如下图
上图函数的 这里返回了失败,如下图,这个注释掉,全部没有失败,但是从机没有数据
02-12-2019 10:20 AM - 编辑日期 02-12-2019 10:20 AM
hi @yangshaokai
你用的是什么板子和器件?
----------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
----------------------------------------------------------------------------------------------
修改时间 02-13-2019 09:51 AM
hi @yangshaokai
因为信号正常,我理解你的硬件电路应该是OK的。
综合 a) scl一个字节后一直拉低 b) master状态显示为bus busy
我感觉有可能是slave 拉低scl迫使master进入等待。结合所连接的从站来看,是否有这种可能?
----------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
----------------------------------------------------------------------------------------------