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

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


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

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

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

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


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



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


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

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


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


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

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



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


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

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


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

返回首页

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

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