esp8266 读取 php信息,esp8266关于数据接收!!!

#include

//================================================================

//查找指定字符串在另一字符串中的位置

//输入参数:

//src      输入源

//des      要查找的数组的起始位置

//bGetEnd  查找长度

//输出参数:

// -1,输入数据无效

// 0, 没有找到数据

//0以上,表示找到数据的位置

//================================================================

int mystrstr( char * src, char * des ,char bGetEnd )

{

char * i;

int ret=0;

int ret1=0;

if(( *src == 0) || ( *des == 0 ) )

{

return -1;                                        //输入的数据无效

}

i =strstr(src,des);                                //调用系统函数strstr,查找指定字符串在另一字符串中的位置

if( i == 0 ){

return 0;                                        //没有找到数据

}

ret = i - src;

if( bGetEnd!=0){                                //如果 bGetEnd ==1,则返回包含 des字符串长度 的数据

ret1 = strlen(des);                        //调用系统函数strlen,计算字符串的长度

ret += ret1;

}

return ret;                                                //如果 bGetEnd ==0,则返回 des字符串起始位置 的数据

}

int main()

{

char pUART_Buf[]={"+IPD,0,10:1234567"}; //这是固有数据+字符串

char pGet_Buf[100]={0};                                        //用来保存提取出来的字符串

char sFindString[]={":"};                                //这是要查找和字符

int ret;

ret = mystrstr ( (char *)&pUART_Buf ,(char *)&sFindString ,11 );

//10为字符串 "+IPD,0,xx:"的长度

//内存块比较 pUART_Buf 等于sFindString,返回值就=0

//使用memcmp函数,要先引用:

memcpy( (char *) &pGet_Buf ,(char *) &pUART_Buf[ret] , (strlen(pUART_Buf) - ret) );

//先引用 "string.h"

//用法:memcpy( 目标数组 , 源数组 ,截取的长度 )

//(strlen(pUART_Buf) - ret) ,计算出需要的数组的长度

//这样,就可以提取到 1234567 这样的字符串了。

return 0;

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让 ESP8266 读取 RS485 数据,需要使用一个 RS485 转 TTL 模块,将 RS485 信号转换为 TTL 信号,然后将 TTL 信号连接到 ESP8266 的 GPIO 引脚上。 一般来说,RS485 转 TTL 模块有两个接口,一个是 RS485 接口,另一个是 TTL 接口。首先将 RS485 接口连接到 RS485 总线上,然后将 TTL 接口连接到 ESP8266 的 GPIO 引脚上。 在软件方面,需要使用 ESP8266 的串口通信功能来读取 RS485 数据。具体实现的步骤如下: 1. 配置 ESP8266 的串口通信参数,包括波特率、数据位、停止位和校验位等。 2. 通过 GPIO 引脚控制 RS485 转 TTL 模块的发送和接收模式。 3. 使用串口接收函数读取 RS485 数据,并进行处理。 下面是一个 ESP8266 读取 RS485 数据的简单示例代码: ``` #include <SoftwareSerial.h> SoftwareSerial rs485Serial(2, 3); void setup() { Serial.begin(9600); pinMode(4, OUTPUT); digitalWrite(4, LOW); // 设置为接收模式 rs485Serial.begin(9600); } void loop() { if (rs485Serial.available()) { char c = rs485Serial.read(); Serial.print(c); } } ``` 在这个示例代码中,我们使用了 SoftwareSerial 库来创建一个软串口对象 rs485Serial,将其连接到 ESP8266 的 GPIO2 和 GPIO3 引脚上。在 setup 函数中,我们设置了 GPIO4 引脚为输出模式,将其设为低电平,表示 RS485 模块处于接收模式。然后使用 rs485Serial.begin 函数初始化串口通信,并在 loop 函数中使用 rs485Serial.available 和 rs485Serial.read 函数读取 RS485 数据并输出到串口监视器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值