主题:EM9287串口通信的问题

  共有34911人关注过本帖    
帅哥哟,离线,有人找我吗?
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 GPIO7GPIO20 – GPIO31。在应用软件方面,需要主要代码如下:

设置一位GPIO作为RTS

DWORD dwRtsGpioPin = GPIO26;                       //选择GPIO26作为RTS

 

If!DeviceIoControlhSer,                    
IOCTL_SET_UART_RTS_PIN,
& dwRtsGpioPin, sizeof(DWORD), 
NULL, 0,
NULL, NULL
))

{

// 出错处理。。。

}

 

设置串口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   [只看该作者]

谢谢答复。
DeviceIoControlhSer,                    
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口进行同样的测试,这样做可通过一个简单的测试程序来排除硬件原因。


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

返回首页

EM9287串口通信的问题

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