主题:ESM335x Linux版本核心板 QT环境下打开SPI功能无法使用

  共有12465人关注过本帖    
帅哥哟,离线,有人找我吗?
zhenyu
1楼 信息 | 搜索 | 邮箱


加好友 发短信
ESM335x Linux版本核心板 QT环境下打开SPI功能无法使用  发帖心情 Post By:2021-7-7 11:28:00   [只看该作者]

最近在做项目,程序功能为开启esm335x的GPIO上升沿捕获功能,接收到其他机器发送的脉冲,esm335x捕获到脉冲,接着使用SPI接收传输的信息。

问题在于,之前写了一个这样的程序,运行没有问题,但在移植到QT时,GPIO上升沿捕获功能正常开启,结束时也能正常释放关闭。但是,SPI的开启后,接收无法正确的接收到数据,并且无法正确的释放和关闭。

前后两个程序的主要部分几乎相同。如果需要,我可以把源码拿出来,其他设备的SPI发送是没有问题的。


两个程序比较大的区别就是,原程序使用的时C语言的多线程方式就是pthread_creat,QT的程序使用的是Qthread类,主要就这两个区别



  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
2楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2021-7-7 17:33:00   [只看该作者]

你好,这样看来问题应该多半是处在Qthread类的使用上,有没有单独测试过Qthread创建线程呢?如果要排除这个问题,也可以使用C提供的线程创建接口来创建SPI的线程。


  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
zhenyu
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2021-7-8 23:17:00   [只看该作者]

你好,我问题解决了,是spi接收数组长度太长。我在移植到qt的时候对spi的长度做了点改动,本来我是知道spi一次性接收的数据长度有限,但是之前一直没达到这个上限,我以为只要不接收太多就行了,没想到spi接收数组也不能设置过长,现已解决,还是感谢你的帮助。



  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
4楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2021-7-12 9:41:00   [只看该作者]

感谢分享,问题解决了就好!


  单帖管理 | 引用 | 回复 回到顶部

返回首页

ESM335x Linux版本核心板 QT环境下打开SPI功能无法使用

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: