主題:ESM335x Linux版本核心板 QT環境下打開SPI功能無法使用 共有60849人關注過本帖 |
---|
![]() zhenyu |
1樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
ESM335x Linux版本核心板 QT環境下打開SPI功能無法使用 ![]() 最近在做項目,程序功能為開啟esm335x的GPIO上升沿捕獲功能,接收到其他機器發送的脈沖,esm335x捕獲到脈沖,接著使用SPI接收傳輸的信息。 問題在于,之前寫了一個這樣的程序,運行沒有問題,但在移植到QT時,GPIO上升沿捕獲功能正常開啟,結束時也能正常釋放關閉。但是,SPI的開啟后,接收無法正確的接收到數據,并且無法正確的釋放和關閉。 前后兩個程序的主要部分幾乎相同。如果需要,我可以把源碼拿出來,其他設備的SPI發送是沒有問題的。 兩個程序比較大的區別就是,原程序使用的時C語言的多線程方式就是pthread_creat,QT的程序使用的是Qthread類,主要就這兩個區別 |
單帖管理 | 引用 | 回復 ![]() |
![]() hzc |
2樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,這樣看來問題應該多半是處在Qthread類的使用上,有沒有單獨測試過Qthread創建線程呢?如果要排除這個問題,也可以使用C提供的線程創建接口來創建SPI的線程。 |
單帖管理 | 引用 | 回復 ![]() |
![]() zhenyu |
3樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 你好,我問題解決了,是spi接收數組長度太長。我在移植到qt的時候對spi的長度做了點改動,本來我是知道spi一次性接收的數據長度有限,但是之前一直沒達到這個上限,我以為只要不接收太多就行了,沒想到spi接收數組也不能設置過長,現已解決,還是感謝你的幫助。 |
單帖管理 | 引用 | 回復 ![]() |
![]() hzc |
4樓 信息 | 搜索 | 郵箱 |
![]() ![]() ![]() ![]() |
![]() 感謝分享,問題解決了就好! |
單帖管理 | 引用 | 回復 ![]() |