📄 apicomm.lst
字号:
C51 COMPILER V6.23a APICOMM 08/17/2006 16:45:10 PAGE 1
C51 COMPILER V6.23a, 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) MODP2 PRINT(.\Obj\APICo
-mm.lst) OBJECT(.\Obj\APIComm.obj)
stmt 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 V6.23a APICOMM 08/17/2006 16:45:10 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 V6.23a APICOMM 08/17/2006 16:45:10 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 V6.23a APICOMM 08/17/2006 16:45:10 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 + -