当前位置: 首页 > article >正文

学习STC51单片机23(芯片为STC89C52RCRC)

每日一言

        成功的路上从不拥挤,因为坚持的人不多,你要做那个例外。

通过单片机发指令给ESP8266进行通信

通信原理(也是接线原理)

代码如下

        代码解释一下,因为我们的指令是字符数组(c语言没有字符串的概念),那么我们就要用指针偏移的办法将他们遍历出来了,就是跟我们写的helloworld的方法一样,然后要注意的是,要将双引号加上转义字符\这样双引号才会起到仅仅是符合AT指令格式的作用,不然的话会编译出错的

        成功之后会发现我们安信可这边成功以后也就是wife,TCP、数据透传全部都成功了之后,会发现网络调试助手这边也有这样的数据出来了,这个是为什么呢,因为,当我们什么都成功了之后就开启了透传模式,因此我们这些循环的指令,就等于是字符,输出到TCP服务器上,当然我们的ESP8266是没有办法发送数据到TCP服务器上了,因为串口只有RX与ESP8266连接,所以没有用,但是这样我们就可以利用网络来控制LED灯的亮灭了

        提一嘴:要是你打开连接单片机的那个串口,看到奥STCISP的串口助手也会显示和TCP服务器一样的数据在刷的时候,是因为在数据向外面发送的时候,只要是串口都会进行发送,都会接受到信息,那为什么不用STCISP的串口助手呢,是因为安信可是专门调试ESP8266的串口助手,执行命令后会返回相应的结果知道是成功还是失败这样方便我们的学习和调试...

TCP通信控制LED

现在我们最先要的就是实现TCP控制LED灯的功能

void main()

{

// int mark=0;

D5 = 1;

  Uart1_Init();

while(1){

//if(mark==0){

sendString(LJWL);

Delay1000ms();

Delay1000ms();

Delay1000ms();

Delay1000ms();

sendString(LJFWQ);

Delay1000ms();

Delay1000ms();

Delay1000ms();

Delay1000ms();

sendString(TCMS);

Delay1000ms();

Delay1000ms();

Delay1000ms();

Delay1000ms();

sendString(SJCS);

Delay1000ms();

Delay1000ms();

Delay1000ms();

Delay1000ms();

// mark = 1;

// }else{

// Delay1000ms();

// sendString("helloworld\r\n");

//}

}

}

void UART_handler() interrupt 4

{

//static int i = 0;

if(RI == 1){

RI = 0;

cmd[0] = SBUF;

if(cmd[0]=='1'){

D5 = 0;

}

if(cmd[0]=='0'){

D5 = 1;

}

}

if(TI);

}

        直接主要修改的代码都在这边,当我们连接上TCP服务器的时候,通过TCP发送1让LED亮,0让LED暗,但是我真的不想吐槽,连接的成功率真的太低了,而且也不懂什么时候才能连上,干等着,c了.....

        因为此时我们的接线是单片机4根线与ESP82664根线相连接的,因为我们想要tcp发送数据到ESP8266,再通过TXD向单片机发送数据,这样单片机才能收到TCP服务器的数据。。。只是想通过网络来控制灯的亮灭。。。但是真的是TMD太难连接上了。。。。无语了,所以有待优化这个代码

        就是说,代码理论上都是可行的,但是稳定性真的太勾巴低了,经常连不上,可能1分钟才连得上,太傻逼了

明天我要进行优化,兄弟们

http://www.lryc.cn/news/2395974.html

相关文章:

  • 一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (一)
  • 网络系统中安全漏洞扫描为何重要?扫描啥?咋扫描?
  • HiveSQL语法全解析与实战指南
  • 【conda报错】InvalidArchiveError
  • Socket 编程 TCP
  • Redis-6.2.9 Sentinel 哨兵配置
  • 基于TMC5160堵转检测技术的夹紧力控制系统设计与实现
  • 从零开始搞个简易分布式部署环境
  • XCTF-web-fileclude
  • OpenShift AI - 启用过时版本的 Notebook 镜像
  • Redis 缓存穿透、缓存击穿、缓存雪崩详解与解决方案
  • sass高阶应用
  • docker docker-ce docker.io
  • DQN和DDQN(进阶版)
  • 【组件】翻牌器效果
  • CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)
  • NX811NX816美光颗粒固态NX840NX845
  • 捋捋wireshark
  • c++学习之---模版
  • MyBatis-Flex 全面指南:下一代轻量级持久层框架实战入门
  • 第十六章 EMQX黑名单与连接抖动检测
  • WebSphere(WAS)
  • 新编辑器编写指南--给自己的备忘
  • xPSR
  • 鸿蒙网络数据传输案例实战
  • 【JavaEE】-- 网络原理
  • 1.RV1126-OPENCV 交叉编译
  • PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
  • CSS (mask)实现服装动态换色:创意与技术的完美融合
  • 基于51单片机的音乐盒汽车喇叭调音量proteus仿真