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