wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:832回复:1

串口问题,帮忙谢谢

楼主#
更多 发布于:2003-12-10 10:28
分别用电脑的串口和8051的串口发同一串字符(AT*p1)到手机模块,为何会有不同?以下是用Bus Hound 5.0抓到的数据:
1:用电脑的串口发字符(AT*p1)
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- --------------------------------------------
7 LEN 07 00 00 00 7 1.1.0
7 DO 41 54 2a 70 31 0d 0a AT*p1.. 1.2.0
――――――――――――――――――――――――――――――――――――
2:用8051的串口 发字符(AT*p1)
Device Phase Data Description Cmd.Phase.Ofs(rep)
------ ----- --------------------------------------------
7 LEN 01 00 00 00 1 1.1.0

7 DI 41 A 1.2.0

7 LEN 01 00 00 00 1 2.1.0

7 DI 54 T 2.2.0

7 LEN 01 00 00 00 1 3.1.0

7 DI 2a * 3.2.0

7 LEN 01 00 00 00 1 4.1.0

7 DI 70 p 4.2.0

7 LEN 01 00 00 00 1 5.1.0

7 DI 31 1 5.2.0

7 LEN 01 00 00 00 1 6.1.0

7 DI 0d . 6.2.0

7 LEN 01 00 00 00 1 7.1.0

7 DI 0a . 7.2.0

――――――――――――――――――――――――――――――――――――――

问:如何才能让8051也像电脑的串口那样把字符(AT*p1)用一个命令行发出去?



 
wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-10 10:30
程序如下:
if (TI)
{
#if (DEBUG)
OUTA ^= 0x08;
#endif

#if (USE_DSR)
if (!DSRisOn)
#endif
{
if (txOutPtr != txInPtr) // If we have data in txBuffer[]
{
#if (DEBUG)
OUTA ^= 0x40;
#endif

#if (RTS_MODE == 1)
if (RTSisOn)
#endif
{
#if (USE_CTS)
if (CTSisOn)
#endif
{
TI = 0;
SBUF0 = txBuffer[txOutPtr];
txOutPtr = (txOutPtr + 1) % TX_BUFFER_SIZE;
}
}
#if (RTS_MODE == 1)
else
{
#if (STRICT_RTS_SPEC)
if (!CTSisOn)
#endif
{
localRTS = 1;
}
}
#endif
}
else
// No data in txBuffer[]
{
#if (DEBUG)
OUTA ^= 0x80;
#endif

#if (RTS_MODE == 1)
localRTS = 0;
#endif
}
}
}
游客

返回顶部