📄 uart.lst
字号:
135 10 seg_count=0;
136 10 byte_count=0;
137 10 }
138 9 }
139 8 }
140 7 else if(cmd[2]=='R'){
141 8 if(cmd[3]=='M'){
142 9 if(cmd[4]=='C'){
143 10 cmd_number=3;
144 10 mode=2;
145 10 seg_count=0;
146 10 byte_count=0;
147 10 a_num=0;
148 10 s_num=0;
149 10 }
150 9 }
151 8 }
152 7 else if(cmd[2]=='Z'){
153 8 if(cmd[3]=='D'){
154 9 if(cmd[4]=='A'){
155 10 cmd_number=4;
156 10 mode=2;
157 10 seg_count=0;
158 10 byte_count=0;
159 10 }
160 9 }
161 8 }
162 7 }
163 6 }
164 5 }
165 4 }
166 3 else if(mode==2){
167 4 //接收数据处理
168 4 switch (cmd_number){
169 5 case 1: //类型1数据接收。GPGGA
170 5 switch(seg_count){
171 6 case 2: //纬度处理
172 6 if(byte_count<9){
173 7 WD[byte_count]=tmp;
174 7 }
175 6 break;
176 6 case 3: //纬度方向处理
177 6 if(byte_count<1){
178 7 WD_a=tmp;
179 7 }
C51 COMPILER V8.02 UART 05/20/2008 17:39:32 PAGE 4
180 6 break;
181 6 case 4: //经度处理
182 6 if(byte_count<10){
183 7 JD[byte_count]=tmp;
184 7 }
185 6 break;
186 6 case 5: //经度方向处理
187 6 if(byte_count<1){
188 7 JD_a=tmp;
189 7 }
190 6 break;
191 6 case 7: //定位使用的卫星数
192 6 if(byte_count<2){
193 7 use_sat[byte_count]=tmp;
194 7 }
195 6 break;
196 6 case 9: //高度处理
197 6 if(byte_count<6){
198 7 Height[byte_count]=tmp;
199 7 Height_num++;
200 7 }
201 6 break;
202 6 }
203 5 break;
204 5 case 2: //类型2数据接收。GPGSV
205 5 switch(seg_count){
206 6 case 3: //天空中的卫星总数
207 6 if(byte_count<2){
208 7 total_sat[byte_count]=tmp;
209 7 }
210 6 break;
211 6 }
212 5 break;
213 5 case 3: //类型3数据接收。GPRMC
214 5 switch(seg_count){
215 6 case 7: //速度处理
216 6 if(byte_count<5){
217 7 speed[byte_count]=tmp;
218 7 s_num++;
219 7 }
220 6 break;
221 6 case 8: //方位角处理
222 6 if(byte_count<5){
223 7 angle[byte_count]=tmp;
224 7 a_num++;
225 7 }
226 6 break;
227 6 }
228 5 break;
229 5 case 4: //类型4数据接收。GPZDA
230 5 switch(seg_count){
231 6 case 1:
232 6 if(byte_count<6){ //时间处理
233 7 time[byte_count]=tmp;
234 7 }
235 6 break;
236 6 case 2:
237 6 if(byte_count<2){
238 7 date[byte_count]=tmp;
239 7 }
240 6 break;
241 6 case 3:
C51 COMPILER V8.02 UART 05/20/2008 17:39:32 PAGE 5
242 6 if(byte_count<2){
243 7 date[byte_count+2]=tmp;
244 7 }
245 6 break;
246 6 case 4:
247 6 if((byte_count<4)&&(byte_count>1)){
248 7 date[byte_count+2]=tmp;
249 7 }
250 6 break;
251 6 }
252 5 break;
253 5 }
254 4 }
255 3 byte_count++; //接收数位加1
256 3 break;
257 3 }
258 2
259 2 }
260 1
261 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 627 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 72 ----
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 + -