at_cmd01.c

来自「基于H83664的手机模块TC35i短信收发系统 at_cmd01.c/LED」· C语言 代码 · 共 98 行

C
98
字号
#include "init.h"
#include <string.h>

extern char recv[100];
extern int counter, counter2;

void delay(void){
	int i;
	for (i = 0; i < 5000; i++) {;}
}

void sat(char res[]){
	char *p, *pr;
	char att[2] = "at";

	pr = &res[0];
	p = &att[0];

	for (counter = 0; counter < 2; counter++){
		TDR = *p;
		p++;
		while ( TDRE != 1){;}
	}
	
	for (counter2 = 0; counter2 < 2; counter2++){
		while (RDRF == 0) {;}
		*pr = RDR;
		pr++;
	}
	counter2--;
}

void sc(char cmd[], char res[], int len){
	char	*p, *pr;
	int l;

	p = &cmd[0];
	pr = &res[counter2 + 1];
	if (len == 0){
		l = strlen(cmd);
	}
	else {
		l = len;
	}

	for (counter = 2; counter < l + 2; counter++){
		TDR = *p;
		p++;
		while ( TDRE != 1){;}

		while ( RDRF == 0) {;}
		*pr = RDR;
		pr++;
		counter2++;
	}
}

void se(char res[]){
	char *pr;
	pr = &res[counter2 + 1];
	TDR = 0x0D;
	while (TDRE != 1){;}
	while (RDRF == 0) {;}
	*pr = RDR;
	pr++;
	counter2++;
}

void getr(char res[]){
	char	*pr;
	int	i, flag;

	pr = &res[counter2 + 1];

	while (RDRF == 0) {;}
	if (SCI3.SSR.BIT.OER == 1) {
		*pr = 0xFF;
	}
	else {
		flag = 0;
		while (flag == 0){
			for (i = 0; i <= 5000; i++){
				if (RDRF == 1)
					{ break; }
			}
			if (i >= 5000) {
				flag = 1;
				break;
			} 
			*pr = RDR;
			if (counter2 < 100){
				pr++;
				counter2++;
			}
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?