日期:2014-05-16  浏览次数:20592 次

linux中的spi问题
我自己写了一个linux spi驱动,然后又写了一个简单的测试程序,发现数据接收完全正确。
测试程序,就是打开设备,然后,调用了read函数,之后,将接收的数据写入一个文件,然后对照发送的数据,结果是一致的。
我现在是从这个spi口中接收数据,之后,将这些数据用qt画出来,具体的方法,就是在qt中创建一个线程,用这线程接收数据,之后用主线程画图。
可是现在问题出来了:在接收数据的线程中,接收的数据总是偶尔会丢失几个。我现在不明白,这是我驱动的问题,还是qt程序的问题。而且在接收数据的线程中,我连打印语句都没敢加,只是接收数据,然后放到容器里,没有其它任务。
哪们大哥大姐的,给支支招啊

------解决方案--------------------
让我们把这个问题分开说,
能否 尝试 先 摒弃 你的 spi,也就是不用spi 写数据到 文件,而是直接手动将该文件 写成你期望接收的数据,让 qt 去画图,看看画的图有没有问题? 相对 硬件spi 驱动问题,检查 qt是否ok应该简单些

如果发现qt没有问题,那就是,spi写数据到文件有问题了,另外可能,spi 对 文件的写,与 qt 对文件的读,是怎么互斥同步交互的,这里有没有问题?

排除了 互斥同步的问题,就该看看spi的驱动了,硬件的接收状态,是中断 还是轮训,识别到中断或者检测到数据的接收,之后将其写入到文件,这个环节有没有问题,怎么做的状态检测,中断处理?