SIM卡初始化
//SIM卡初始化
int card_init(int fd) {int nread,nwrite;char numberf[MAX_MESSAGE_LEN];char reply[MAX_MESSAGE_LEN];memset(numberf,0,sizeof(numberf)); //初始化memset(reply,0,sizeof(reply));strcpy(numberf,"at\r"); //拼接at命令,檢測 Module 與串口是否連通,能否接收 AT 命令;OK (與串口通信正常),無返回(與串口通信未連通)nwrite = write(fd,numberf,strlen(numberf)); //發(fā)送命令。printf("nwrite=%d,%s\n",nwrite,numberf);sleep(1); //暫停,留有返回時間。 nread = read(fd,reply,sizeof(reply)); //將從設備返回的值寫入reply中。printf("nread=%d,%s\n",nread,reply); if(strstr(reply,"OK") == NULL) //strstr(str1,str2) 函數(shù)用于判斷字符串str2是否是str1的子串。如果是,則該函數(shù)返回str2在str1中首次出現(xiàn)的地址;否則,返回NULL。{printf("ERROR:check serial!\n");return 0;}memset(numberf,0,sizeof(numberf));memset(reply,0,sizeof(reply));strcpy(numberf,"AT+CSQ\r"); //檢查網(wǎng)絡信號強度,返回:+CSQ: **,##。其中**應在 10 到 31 之間,數(shù)值越大表明信號質量越好,//##為誤碼率,值在 0 到 99 之間。否則應檢查天線或 SIM 卡是否正確安裝nwrite = write(fd,numberf,strlen(numberf));sleep(1);nread = read(fd,reply,sizeof(reply));printf("nread=%d,%s\n",nread,reply); memset(reply,0,sizeof(reply));memset(numberf,0,sizeof(numberf));strcpy(numberf,"AT+CCID\r");nwrite = write(fd,numberf,strlen(numberf));printf("nwrite=%d,%s\n",nwrite,numberf);sleep(1);nread = read(fd,reply,sizeof(reply));printf("nread=%d,%s\n",nread,reply);if(strstr(reply,"OK") == NULL){printf("ERROR:check sim-card!\n");return 0;} return 1; }總結
- 上一篇: c++顺序容器vector用法
- 下一篇: NanoPi NEO的Matrix库硬件