主题:ESM335x Linux版本核心板 QT环境下打开SPI功能无法使用 共有32487人关注过本帖 |
---|
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 [只看该作者]
感谢分享,问题解决了就好! |
单帖管理 | 引用 | 回复 |