一 知识点
1 AI指令后面一定要加 \n\r
2 注意AT指令里面待双引号的这种,要使用斜杠隔开。
二 源码:
void Set_Pdu_Mode(void)
{
u8 a = 1;
if(atKey == 1)//允许发送AT指令
{
atKey = 0;
UartSendStr("test start\r\n");//串口1输出开始提示
while(a != 9)
{
switch (a)
{
case 1:
a = Second_AT_Command("AT","OK");//如果a =9则表明最后一条语句发送完毕,跳出循环,否则一直进行指定指令的发送
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 2;
break;
case 2:
a =Second_AT_Command("AT+CSTT=\"CMNET\"","OK");
delay2s(); if(a == 0) //如果正常发送,则进行下一步
a = 3;
break;
case 3:
a = Second_AT_Command("AT+CIICR","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 4;
break;
case 4:
a = Second_AT_Command("AT+MCONFIG=\"test\",\"\",\"\"","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 5;
break;
case 5:
a = Second_AT_Command("AT+MIPSTART=\"47.111.138.129\",\"1883\"","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 6;
break;
case 6:
a = Second_AT_Command("AT+MCONNECT=1,60","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 7;
break;
case 7:
a =Second_AT_Command("AT+MSUB=\"mqtt/topic\",0","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 8;
break;
case 8:
a = Second_AT_Command("AT+MPUB=\"mqtt/topic\",0,0,\"strat\"","OK");
delay2s();
if(a == 0) //如果正常发送,则进行下一步
a = 9;
break;
defalut:
a = 1;
}
}
}

基于C语言的串口AT指令发送实例解析的更多相关文章

  1. 基于STM32之UART串口通信协议(二)发送

    一.前言 1.简介 在上一篇UART详解中,已经有了关于UART的详细介绍了,也有关于如何使用STM32CubeMX来配置UART的操作了,而在该篇博客,主要会讲解一下如何实现UART串口的发送功能. ...

  2. 《Selenium 2自动化测试实战 基于Python语言》中发送最新邮件无内容问题的解决方法

    虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动 ...

  3. Siemens3508手机AT指令发送短信的实验

    凡夫 最近利用Siemens3508旧手机做了AT指令发送短信的实验.有人可能认为我费那么大劲折腾累不累,告诉你这可是废物再利用,可以利用旧手机里的GSM/GPRS模块做无线远程多点分布数据采集.监控 ...

  4. 基于JAVA语言的多线程技术

    1.简介 多线程技术属于操作系统范围内的知识: 进程与线程 可以这么理解,一个应用程序就是一个进程,在一个进程中包含至少一个线程:进程就是线程的容器,真正工作.处理任务的是线程. 进程是操作系统分配资 ...

  5. 基于Modbus的C#串口调试开发

    说明:本文主要研究的是使用C# WinForm开发的串口调试软件(其中包含Modbus协议相关操作).Modbus相关协议可以查阅百度文库等,可参考: <http://wenku.baidu.c ...

  6. 基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析

    前言 Swift 语言,怎么说呢,有一种先接受后排斥.又欢迎的感觉,纵观国外大牛开源框架或项目演示,Swift差点儿占领了多半,而国内尽管出现非常多相关技术介绍和教程,可是在真正项目开发中使用的占领非 ...

  7. selenium2自动化测试实战--基于Python语言

    自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...

  8. Docs-.NET-C#-指南-语言参考-预处理器指令:#line(C# 参考)

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#line(C# 参考) 1.返回顶部 1. #line(C# 参考) 2015/07/20 借助 #line,可修改编译器的行 ...

  9. Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令 1.返回顶部 1. #if(C# 参考) 2018/06/30 如果 C# 编译器遇到 #if 指令,最终是 ...

  10. STM32 Bootloader基于ymodem传输协议串口IAP升级详解

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...

随机推荐

  1. 从嘉手札<2024-1-17>

    昨天我以为 人生是一场体验 是一辆不会回头的列车 我们遇到了风景 感悟了风景 放下了风景 构成了自己 今天我以为 静水流深.光而不耀 可多思必多疑 思维是一种极为复杂的东西 我曾经觉得知行合一是对自我 ...

  2. Linux服务器Crontab定时任务配置

    1.检查linux系统是否有crontab rpm -qa | grep crontab 2.如果未安装进行安装 yum -y install vixie-cron yum -y install cr ...

  3. SpringBoot2.7集成Swagger3

    1.引入pom坐标 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <ar ...

  4. SpringCloud-06-Consul注册中心

    Consul Server Consul 是由 HashiCorp 基于 Go 语言开发的,支持多数据中心,分布式高可用的服务发布和注册服务软件. 用于实现分布式系统的服务发现与配置. 使用起来也较 ...

  5. SpringSecurity使用步骤

    一.导入jar包(使用maven构建项目导入其坐标) <dependency> <groupId>org.springframework.security</groupI ...

  6. (C语言)每日代码||2023.12.23||for循环的循环条件部分可以是数字

    #include <stdio.h> int main() { int i = 3; for (i; i; i--) { printf("%d\n", i); } // ...

  7. 答疑解惑:解释在Mybatis-Spring下@Mapper与@MapperScan为何不能同时生效以及实现动态条件注册Mapper接口

    若项目中使用了@MapperScan注解后,则@Mapper注解不再生效, 原因是:@MapperScan注解 会执行@Import(MapperScannerRegistrar.class),而Ma ...

  8. postman application/json;

    看来以后需要都统一使用这个json比较方便. 首先看下 spring boot 项目接口的返回: 当然若不加,他默认可能也是 UTF-8,还是加一下吧.这样就可以了,保证以后 请求和响应的 conte ...

  9. RAPTOR:递归摘要与树形检索的结合,提升RAG检索性能

    RAPTOR:递归摘要与树形检索的结合,提升RAG检索性能 来源:ICLR'24 https://arxiv.org/pdf/2401.18059.pdf 随着 LLM 技术的发展,RAG 的价值也来 ...

  10. CentOS7环境源码安装freeswitch1.10.7

    操作系统 :CentOS 7.6_x64 freeswitch版本 :1.10.7 一.安装步骤 1.下载freeswitch源代码 wget http://files.freeswitch.org/ ...