linux中的spi问题

开心an 2012-01-04 01:42:30
我自己写了一个linux spi驱动,然后又写了一个简单的测试程序,发现数据接收完全正确。
测试程序,就是打开设备,然后,调用了read函数,之后,将接收的数据写入一个文件,然后对照发送的数据,结果是一致的。
我现在是从这个spi口中接收数据,之后,将这些数据用qt画出来,具体的方法,就是在qt中创建一个线程,用这线程接收数据,之后用主线程画图。
可是现在问题出来了:在接收数据的线程中,接收的数据总是偶尔会丢失几个。我现在不明白,这是我驱动的问题,还是qt程序的问题。而且在接收数据的线程中,我连打印语句都没敢加,只是接收数据,然后放到容器里,没有其它任务。
哪们大哥大姐的,给支支招啊
...全文
183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
开心an 2012-01-08
  • 打赏
  • 举报
回复
谢谢大家的帮助了。最后查明:spi驱动里面要做个缓冲区。这样,应用程序来不及读的时候,还可以继续接收数据。
pro_or_gram 2012-01-05
  • 打赏
  • 举报
回复
让我们把这个问题分开说,
能否 尝试 先 摒弃 你的 spi,也就是不用spi 写数据到 文件,而是直接手动将该文件 写成你期望接收的数据,让 qt 去画图,看看画的图有没有问题? 相对 硬件spi 驱动问题,检查 qt是否ok应该简单些

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

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



开心an 2012-01-04
  • 打赏
  • 举报
回复
我的驱动是在spi控制器的基础上写的。
deep_pro 2012-01-04
  • 打赏
  • 举报
回复
linux对spi的支持一直不好
不知道你这是GPIO模拟的 还是芯片自带的spi控制器
gpio模拟的 丢几个数是正常的

做一些对比测试就能区分到底是驱动还是qt程序的问题

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧