主題:EM9287串口通信的問題 共有53223人關注過本帖 |
---|
deanzilin |
1樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
EM9287串口通信的問題 Post By:2014-7-11 15:47:00 [只看該作者]
在設計底板的時候才用了ZLG的RSM3485收發集成塊,它有一個控制引腳,低發高收,我用EM9287的GPIO進行控制,發現接收以及發送數據時
非常容易出錯,不知道哪位經歷過類似的情況,應該如何解決呢?
|
單帖管理 | 引用 | 回復 |
zxw |
2樓 |
Post By:2014-7-11 16:43:00 [只看該作者]
使用GPIO來控制通訊的RTS,可能會有些慢,因此會出現掉數據的情況
你可以使用我們的驅動,打開RTS功能并配置好對應的GPIO引腳,就可以正常使用了: 可作為RTS硬件方向控制的GPIO有:GPIO6、 GPIO7、GPIO20
– GPIO31。在應用軟件方面,需要主要代碼如下: 設置一位GPIO作為RTS DWORD dwRtsGpioPin = GPIO26; //選擇GPIO26作為RTS
If(!DeviceIoControl(hSer, { // 出錯處理。。。 }
設置串口RTS控制模式 DCB SerDCB; SerDCB.DCBlength
= sizeof(DCB); GetCommState(hSer, &SerDCB ); // 從驅動讀取當前DCB SerDCB.fRtsControl
= RTS_CONTROL_TOGGLE; SetCommState(hSer, &SerDCB ); // 再設置回驅動 需要注意:我們的RTS=0 數據發送 RTS=1 數據接收 |
|
單帖管理 | 引用 | 回復 |
deanzilin |
3樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-11 18:41:00 [只看該作者]
謝謝答復。
DeviceIoControl(hSer, IOCTL_SET_UART_RTS_PIN, & dwRtsGpioPin, sizeof(DWORD), NULL, 0, NULL, NULL) 這一函數編譯時會產生錯誤,分別為: error C2065:'FILE_DEVICE_BUS_EXTENDER' undeclared identifier error C2065:'METHOD_BUFFRED' undeclared identifier error C2065:'FILE_ANY_ACCESS' undeclared identifier error C2065:'CTL_CODE' undeclared identifier 請問這個應該怎樣解決? 這一函數
[此貼子已經被作者于2014-7-11 18:41:08編輯過]
|
單帖管理 | 引用 | 回復 |
zxw |
4樓 |
Post By:2014-7-11 20:41:00 [只看該作者]
把GPIO的相關頭文件加入工程試試!
出這種連接錯,基本上是沒有加入所需要的頭文件或庫!
|
|
單帖管理 | 引用 | 回復 |
x10 |
5樓 |
Post By:2014-7-11 21:08:00 [只看該作者]
試試包含以下header: #include <winioctl.h> #include "bsp_drivers.h" |
|
單帖管理 | 引用 | 回復 |
deanzilin |
6樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-12 15:22:00 [只看該作者]
以下是引用x10在2014-7-11 21:08:00的發言:
試試包含以下header: #include <winioctl.h> #include "bsp_drivers.h" 謝謝,問題已經解決了。 還有個事情很奇怪,就是我設置好的開機自啟動程序,在你們的評估底板上就可以自啟動,可換成我自己設計的底板就不能啟動了。 還不是所有程序都這樣,有的能自啟動,有的不能。 不知道你們有沒有遇到類似的情況?
|
單帖管理 | 引用 | 回復 |
deanzilin |
7樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-12 15:41:00 [只看該作者]
謝謝,問題已經解決了。 還有個事情很奇怪,就是我設置好的開機自啟動程序,在你們的評估底板上就可以自啟動,可換成我自己設計的底板就不能啟動了。 還不是所有程序都這樣,有的能自啟動,有的不能。 不知道你們有沒有遇到類似的情況?
|
單帖管理 | 引用 | 回復 |
x10 |
8樓 |
Post By:2014-7-12 19:50:00 [只看該作者]
是同樣的程序有時能啟動,有時不能啟動?還是說,有些程序肯定啟動,有些不能啟動。那些不能自動啟動的程序,在桌面通過鼠標點擊可以啟動嗎?
建議請把調試串口接上,把啟動信息貼出來,應當能確定不啟動的原因。
|
|
單帖管理 | 引用 | 回復 |
deanzilin |
9樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-13 9:36:00 [只看該作者]
[此貼子已經被作者于2014-7-13 10:30:44編輯過]
|
單帖管理 | 引用 | 回復 |
deanzilin |
10樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-13 9:41:00 [只看該作者]
[此貼子已經被作者于2014-7-13 10:30:28編輯過]
|
單帖管理 | 引用 | 回復 |
deanzilin |
11樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2014-7-13 11:38:00 [只看該作者]
不好意思,測了一下還是能自啟動的。
只是在打開com8時程序卡在那里,但同樣的程序在評估底板上是可以正常打開com8的并執行下面的程序。
我還在找是哪里出了問題?是硬件的毛病嗎?你們有遇到類似的情況嗎? |
單帖管理 | 引用 | 回復 |
zhl |
12樓 |
Post By:2014-7-13 12:06:00 [只看該作者]
如果是懷疑com8的原因,建議你用測試程序step2_serialtest測試,只打開com8口進行同樣的測試,這樣做可通過一個簡單的測試程序來排除硬件原因。 |
|
單帖管理 | 引用 | 回復 |