?? apicomm.lst
字號:
C51 COMPILER V7.50 APICOMM 04/16/2007 15:22:38 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE APICOMM
OBJECT MODULE PLACED IN .\Obj\APIComm.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\Driver\Comm\APIComm.c LARGE OPTIMIZE(2,SPEED) BROWSE MODP2 PRINT(.\Ob
-j\APIComm.lst) OBJECT(.\Obj\APIComm.obj)
line level source
1 /*
2 * CopyRight (C) 2005,江蘇盛唐電子產品有限公司
3 * All Rights Reserved.
4 *
5 * 文件名稱:APIComm.C
6 * 文件標識:
7 * 摘 要:RS232通信類API的實現文件
8 *
9 * 當前版本:1.0
10 * 作 者:熊剛
11 * 完成日期:2005年10月7日
12 *
13 * 取代版本:
14 * 原作者 :
15 * 完成日期:
16 */
17
18 #include "..\inc\includes.h"
19 #include <stdarg.h>
20
21 //--------------------------------------------------------------------------------------
22 // 函 數 名:uchar ReadDataFromRS232(uchar SeriesComID, uchar ucReadLen, uchar *pucData)
23 // 用 途:從串行口讀數據
24 // 入口參數:uchar SeriesComID:串口號
25 // 1:串口1
26 // 2:串口2
27 // uchar *sucData :寫數據緩沖區
28 // uchar ucLen :寫數據長度
29 // 返 回: 無
30 //--------------------------------------------------------------------------------------
31 void WriteDataToRS232(uchar SeriesComID, const uchar *sucData, uchar ucLen)
32 {
33 1 uchar uci = 0;
34 1
35 1 /*
36 1 if(SeriesComID == PC_COM1)
37 1 {
38 1 Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
39 1 }
40 1 else if(SeriesComID == PC_COM2)
41 1 {
42 1 Open_Serial(COM_2,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
43 1 }
44 1 else
45 1 {
46 1
47 1 }
48 1 */
49 1
50 1 //XBYTE[0x0001] = 0x04;
51 1 for ( uci = 0; uci < ucLen; uci++ )
52 1 {
53 2 // SendToCom( *(sucData + uci) );
54 2 Serial_Write( SeriesComID,sucData[uci]); //必須確保字符發送完成后才能返回。否則會丟失最后1個字符。
C51 COMPILER V7.50 APICOMM 04/16/2007 15:22:38 PAGE 2
55 2 // pause(10);
56 2 }
57 1 // Close_Serial(COM_1);
58 1 /*
59 1 if(SeriesComID == PC_COM1)
60 1 {
61 1 Close_Serial(COM_1);
62 1 }
63 1 else if(SeriesComID == PC_COM2)
64 1 {
65 1 Close_Serial(COM_2);
66 1 }
67 1 else
68 1 {
69 1
70 1 }
71 1 */
72 1 }
73
74 //功能介紹:利用串口設置一個斷點
75 //入口參數:串口號
76 //出口參數:
77 //返回 :接收到的字符值
78 //備注:
79 uchar SetComBreakPoint(uchar SeriesComID)
80 {
81 1
82 1 uchar ucReturnValue;
83 1 uchar uci;
84 1
85 1 while(1)
86 1 {
87 2 if(Serial_Read(SeriesComID,&uci))
88 2 {
89 3 break;
90 3 }
91 2 }
92 1
93 1 ucReturnValue = uci;
94 1
95 1 return ucReturnValue;
96 1 }
97
98 //功能介紹:向串行口發送一個字符串
99 //入口參數:1 串口號
100 // 2 指向待發的字符串指針
101 //出口參數:無
102 //返回?。? 無
103 //備注: 字符串應以空(NULL)結尾
104
105 void ComShowString(uchar ucSeriesComID, const uchar *ucShowString)
106 {
107 1 uchar ucStrLen;
108 1 uchar ComStrArr[4];
109 1
110 1 ucStrLen = strlen(ucShowString);
111 1
112 1 WriteDataToRS232(ucSeriesComID, ucShowString,ucStrLen);
113 1
114 1 // strcpy (ComStrArr, "\0x0D\0x0A");
115 1 ComStrArr[0] = 0x0D;
116 1 ComStrArr[1] = 0x0A;
C51 COMPILER V7.50 APICOMM 04/16/2007 15:22:38 PAGE 3
117 1 WriteDataToRS232(ucSeriesComID, ComStrArr,2);
118 1
119 1 }
120
121 /*
122 static uchar ChangeHexToAscii(uchar ucHex)
123 {
124 uchar ucResult;
125
126 ucResult = (ucHex & 0x0F) + '0';
127 if(ucResult > '9')
128 {
129 ucResult += 7;
130 }
131 return ucResult;
132 }
133 */
134
135 //========================================================================================================
-===
136 //功能: 1.將16進制數據轉為文本,并在尾部追加一個空格
137 //輸入:
138 //輸出: 無
139 //備注: 無
140 //日志: 1.2003-5-30建立(lxx)
141 //========================================================================================================
-===
142 void ComPrintf (uchar *DispText, uchar DispData)
143 {
144 1
145 1 DispText [0] = (DispData >> 4) + '0';
146 1 if (DispText [0] >= 0x3A && DispText [0] <= 0x3F) DispText [0] += 7;
147 1 DispText [1] = (DispData & 0x0F) + '0';
148 1 if (DispText [1] >= 0x3A && DispText [1] <= 0x3F) DispText [1] += 7;
149 1 DispText [2] = ' ';
150 1 }
151 //========================================================================================================
-===
152 //功能: 1.將16進制數據轉為文本,并通過串口發送
153 //輸入: 1.串口號
154 // 2.指針型,指向報文首地址
155 // 3.字節型,報文長度
156 //輸出: 無
157 //備注: 無
158 //日志: 1.2003-5-30建立(lxx)
159 //修改 xg
160 //========================================================================================================
-===
161 void ComSendText (uchar ucCom_ID, void *Buffer, uchar cArrLen)
162 {
163 1 uchar i;
164 1 uchar ComStrArr [4];
165 1
166 1 for (i = 0; i < cArrLen; i++)
167 1 {
168 2 ComPrintf (ComStrArr, *((uchar *)Buffer + i));
169 2 WriteDataToRS232(ucCom_ID,ComStrArr,3);
170 2 }
171 1
172 1 ComStrArr[0] = 0x0D;
173 1 ComStrArr[1] = 0x0A;
174 1 WriteDataToRS232(ucCom_ID,ComStrArr,2);
C51 COMPILER V7.50 APICOMM 04/16/2007 15:22:38 PAGE 4
175 1 }
176
177 //========================================================================================================
-===
178 //功能: 1.將數據以printf的格式通過串口向外發送
179 //輸入: 1.串口號
180 // 2.字符串,可選變量進行格式化輸出。
181 //輸出: 無
182 //備注: 無
183 //日志: 1.2006-6-25建立(熊剛)
184 //修改
185 //========================================================================================================
-===
186 /*
187 void ComPrintf(uchar ucCom_ID,char *fmt,...)
188 {
189 va_list ap;
190 char DispString[1024];
191 uchar ucStrLen;
192
193 va_start(ap,fmt);
194 vsprintf(DispString,fmt,ap);
195
196 ucStrLen = strlen(DispString);
197 WriteDataToRS232(ucCom_ID, DispString,ucStrLen);
198 va_end(ap);
199 }
200 */
201
202
203
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 598 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 32
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -