WIFI实现透传+接线图

单片机通过TX接WIFI模块的RX将设置的AT代码写入WIFI模块(连接WIFI+调为设备模式(有设备,路由,双模等模式))

WIFI模块将响应信号通过TX通过CH340发给PC的RX

通过STC-ISP或安信可串口调试助手查看响应信息

PC可以通过TX给单片机的RX发送信息

cpp 复制代码
#include "reg52.h"
#include "intrins.h"
#include <string.h>


#define SIZE 12
sbit D5 = P3^0;
sbit jdq = P3^4;
sfr AUXR = 0x8e;
int mark=0;
char cmd = '1';
code char ruwang[]="AT+CWJAP=\"wifi名称\",\"密码\"\r\n";
code char ljfwq[]="AT+CIPSTART=\"TCP\",\"IP地址\",端口\r\n";
code char TCMS[]  = "AT+CIPMODE=1\r\n";
code char SJCS[]  = "AT+CIPSEND\r\n";
 
void UartInit(void)		//9600bps@11.0592MHz
{
	AUXR = 0x01;
	SCON = 0x50; //????????1,REN????
	TMOD &= 0x0F;
	TMOD |= 0x20;//???1?????8?????
	
	TH1 = 0xFD;
	TL1 = 0xFD;//9600??????
	TR1 = 1;//?????
	
	EA = 1;//?????
	ES = 0;//??????
}

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	_nop_();
	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void sendByte(char data_msg)
{
	SBUF = data_msg;
	while(!TI);
	TI = 0;
}

void sendString(char* str)
{
	while( *str != '\0'){
		sendByte(*str);
		str++;
	}
}
void Uart_Handler() interrupt 4
{
	if (RI)
	{
		RI = 0;
		jdq = 0;
		Delay1000ms();
		jdq = 1;
	}
}
void main()
{


	//D5 = 1;
	//??C51???????
	UartInit();
	jdq = 0;
	while(1)
	{
		if(mark==0){
		Delay1000ms();
		//??????????,????????
		//sendString("chenlichen shuai\r\n");
		sendString(ruwang);
		Delay1000ms();
		Delay1000ms();
		Delay1000ms();
		Delay1000ms();
		Delay1000ms();
		sendString(ljfwq);
		Delay1000ms();
		Delay1000ms();
		Delay1000ms();
		Delay1000ms();
		//Delay1000ms();
		sendString(TCMS);
		Delay1000ms();
		Delay1000ms();
		//Delay1000ms();
		//Delay1000ms();
		//Delay1000ms();
		sendString(SJCS);
		Delay1000ms();
		Delay1000ms();
		//Delay1000ms();
		//Delay1000ms();
		//Delay1000ms();
		mark=1;
	}
		else if (mark==1)
		{
			if (mark){
				sendString("ok");
				Delay1000ms();
				mark=3;
				ES = 1;
				jdq = 1;
			}
		}
	}
}
相关推荐
LightningJie8 分钟前
STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?
stm32·单片机·实时音视频
ChoSeitaku39 分钟前
链表|反转链表|移除链表元素|链表的中间节点|返回倒数第k个节点|合并两个有序链表(C)
c语言·数据结构·链表
czme1 小时前
C语言数组
c语言
金子总会发光的1231 小时前
HTTP相关返回值异常原因分析,第二部分
嵌入式硬件·物联网·http·硬件工程
YuCaiH2 小时前
【STM32】LED闪烁 & LED流水灯 & 蜂鸣器
笔记·stm32·单片机·嵌入式硬件
路过羊圈的狼2 小时前
STM32CUBEMX安富莱STM32-V6开发板使用FMC驱动SDRAM芯片MT48LC4M32B2TG
stm32·单片机·嵌入式硬件
嵌入式-JY老师2 小时前
电子信息-毕业设计题目(技术热点)
嵌入式硬件·硬件架构·硬件工程·课程设计·智能硬件
墨染新瑞2 小时前
C语言——八股文(笔试面试题)
c语言·开发语言
Qhumaing3 小时前
小白C/C++语言常见问题(持续更新)
c语言·c++·算法
manhuami20073 小时前
51单片机ALE引脚的作用 - 锁存地址和输出时钟信号并不冲突
单片机·嵌入式硬件·51单片机