阅读:832回复:1
串口问题,帮忙谢谢
分别用电脑的串口和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)用一个命令行发出去? |
|
沙发#
发布于: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 } } } |
|