主题:EM9000串口通讯

  共有37067人关注过本帖    
美女呀,离线,留言给我吧!
lwlailfg
1楼 信息 | 搜索 | 邮箱


加好友 发短信
EM9000串口通讯  发帖心情 Post By:2013-5-11 15:34:00   [只看该作者]

EM9000串口通讯问题:

 

你好:

 

     请问EM9000与EM9260的串口的API函数是不是不同,即EM9260中串口的API函数不能用于EM900?

 

     如果不可用,请发一份EM9000串口通讯的API函数文件(Serial.h    Serial.cpp) 给我,谢谢!

 


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


  发帖心情 Post By:2013-5-11 15:38:00   [只看该作者]

串口通讯程序是一样的,都是标准的API。

  单帖管理 | 引用 | 回复 回到顶部
美女呀,离线,留言给我吧!
lwlailfg
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-5-11 15:55:00   [只看该作者]

你好:

 

      我现在用的是EM900,程序中的串口相关文件CESerial.cpp   CESerial.h 用的是EM9260的,在主程序中初始化

 

BOOL    bResult2;
 bResult2 = ceSer2.OpenPort( 2, 19200, 'n', 8, 1 );
 if( bResult2==FALSE )
  return -1; 
    ceSer2.OnReceive = OnReceive2;

 

运行后没有接收到数据;

 

我将断点设在CESerial.cpp 中的接收线程里,可以进入但

DWORD WINAPI CCESerial2::ReceiveThreadFunc(LPVOID lparam)
{
 CCESerial2 *lpSerial = (CCESerial2*)lparam;
 DWORD     dwEvtMask, dwReadError;
 COMSTAT   cmStat;
 ULONG     nWillLen;
ULONG i;

 SetCommMask( lpSerial->m_hSer, EV_RXCHAR|EV_ERR  );       //断点所在行
 for( ; ; )
 {
  if( WaitCommEvent( lpSerial->m_hSer, &dwEvtMask, NULL ) )    //单步至该行后,无法继续?????????


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


  发帖心情 Post By:2013-5-11 20:37:00   [只看该作者]

串口的API函数都是标准的,9260的例程带上EM9000_SDK重新编译后,在9000上就可直接运行的。CCESerial2::是什么意思,用CESerial.h中定义的class CCESerilal直接定义一个实例ceSer2就行了。


  单帖管理 | 引用 | 回复 回到顶部
美女呀,离线,留言给我吧!
lwlailfg
5楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-5-12 10:54:00   [只看该作者]

你好:

     问题解决了。

  

     API函数是可以用的,我按照EM9000的数据手册选用标示的串口2,该串口对应COM1,因没有找到相关说明,一直以为对应的是COM2,只要将用bResult2 = ceSer2.OpenPort( 2, 19200, 'n', 8, 1 )  改为 bResult2 = ceSer2.OpenPort( 1, 19200, 'n', 8, 1 ) 即可

 

 

     谢谢!


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

返回首页

EM9000串口通讯

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