初级会员
- 积分
- 95
- 金钱
- 95
- 注册时间
- 2019-2-11
- 在线时间
- 17 小时
|
10金钱
主要部分代码:
主函数
while(1)
{
switch(Uart2_SBUF)
{
case 'a': Uart1_SendString("one\r\n");break;//HC_Init();break;
case 'b': Uart1_SendString("two\r\n");break;//HW_Init();break;
case 'c': Uart1_SendString("2.4G\r\n"); break;//Two_Four_Init();//break;
}
}
/*----------------------------
UART 中断服务程序
-----------------------------*/
void Uart1() interrupt 4 using 1
{
if (RI)
{
RI = 0; //清除RI位
Uart1_SBUF[J++] = SBUF; //存储串口数据
if(J >= 3)J = 0;
}
if (TI)
{
TI = 0; //清除TI位
Uart1_busy = 0; //清忙标志
}
}
void Uart2() interrupt 8 using 1
{
static BYTE t = 0;
if (S2CON & S2RI)
{
S2CON &= ~S2RI; //清除S2RI位
t = S2BUF;
if(t == 'a' || t == 'b' || t == 'c')
Uart2_SBUF = t; //存储串口数据
}
if (S2CON & S2TI)
{
S2CON &= ~S2TI; //清除S2TI位
Uart2_busy = 0; //清忙标志
}
}
WIFI是ESP8266,通信是TCP的AP模式
简述逻辑:通过串口2接收WIFI发送的指令a、b、c,判断选择通信方式,以上用串口1输出代替。
出现困惑:WIFI发送指令,单纯发送一次(a),判断无果,连续发送(aaa)就可以正确判断,但这显然不符合代码的接收方式,然后还有其他问题,不过先弄清楚这个先,希望各路大神指点一二.......
|
|