资源简介
andriod端app控制单片机的一套,主要是app,不再是发二进制数据的那种,界面更加友好,(界面的架构上有点像游戏的控制风格),适合做遥控小车或者是其他的手机端控制的小玩意等等,包里有andriod端的app和单片机端的驱动文件等等,添加到工程里就可以
代码片段和文件信息
#include
#include
unsigned int date[4] = {0};
unsigned int dat = 0;
unsigned char validsign = 0;
char cou = 0;
void Send_String(unsigned char *a);
void Wait_For_Char(unsigned char d);
void UartInit(void) //115200bps@11.0592MHz
{
SCON = 0x50; //8位数据可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xE8; //设定定时初值
TH1 = 0xFF; //设定定时初值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
//初始化ESP8266
void ESP_8266_Init()
{
Send_String(“AT+CWMODE=1\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
Send_String(“AT+CIPMODE=1\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
Send_String(“AT+CIPMUX=0\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
Send_String(“AT+CWJAP=\“WiFibase\“\“123456789\“\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
Send_String(“AT+CIPSTART=\“TCP\“\“192.168.43.1\“3358\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
Send_String(“AT+CIPSEND\r\n“);
Wait_For_Char(‘K‘);
delayms(5);
ES = 1;
EA = 1;
}
//发送字符信息到app端的屏幕上
//a 字符串指针 ;
//return
//*注 :字符串末必须有\n 否则ESP8266无法发送
void Send_String(unsigned char *a)
{
while(*a!=‘\0‘)
{
SBUF = *a;
while(!TI);
TI = 0;
a++;
}
}
void Wait_For_Char(unsigned char d)
{
unsigned char dc;
while(1)
{
while(!RI);
RI = 0;
dc = SBUF;
if(dc == d)break;
}
}
//得到原始数据
//c:原始数据序号 unsigned char 0-3
//return 该数据值 unsigned int 0-65535
unsigned int getDate(unsigned char c)
{
return date[c];
}
//得到摇杆半径(程度)
//
//return 摇杆半径 unsigned char 0-100
unsigned char getR()
{
return (unsigned char)(date[0]>>9);
}
//得到摇杆角度
//
//return 摇杆角度 unsigned char 0-359
unsigned int getRad()
{
return date[0]&0x01ff;
}
//得到进度条的值
//c 进度条序号 unsigned char 0-3
//return 进度条的值 unsigned char 0-100
unsigned char getProgress(unsigned char c)
{
return (unsigned char)(date[c/2+1]>>(8-(8 * (c%2))));
}
//得到开关的状态
//c 开关序号 unsigned char 0-7
//return 状态 unsigned char 0-1
unsigned char getK(unsigned char c)
{
return (unsigned char)((date[3]>>(7-c))&0x1);
}
void RI_Interrupt() interrupt 4
{
unsigned char a;
if(RI)
{
RI = 0;
a = SBUF;
if(a == ‘\n‘)
{
cou = 0;
validsign = 1;
}
else if(a == ‘ ‘)
{
date[cou] = dat;
dat = 0;
cou ++;
if(cou>=4){cou = 0;}
}
else if((a-48)>=0&&(a-48)<=9)
{
dat*=10;
dat+=(a-48);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1358867 2016-09-11 14:13 andriod WiFI单片机控制全套系统组件\app\Tele.apk
文件 343 2016-09-11 14:22 andriod WiFI单片机控制全套系统组件\readme.txt
文件 2641 2016-09-06 08:57 andriod WiFI单片机控制全套系统组件\驱动文件\ESP8266.c
文件 383 2016-09-06 08:32 andriod WiFI单片机控制全套系统组件\驱动文件\ESP8266.h
文件 2362 2016-09-06 20:27 andriod WiFI单片机控制全套系统组件\驱动文件\main.c
目录 0 2016-09-11 14:15 andriod WiFI单片机控制全套系统组件\app
目录 0 2016-09-11 14:15 andriod WiFI单片机控制全套系统组件\驱动文件
目录 0 2016-09-11 14:15 andriod WiFI单片机控制全套系统组件
----------- --------- ---------- ----- ----
1364596 8
- 上一篇:基于AE的空间分析源代码
- 下一篇:S57海图打包上传
评论
共有 条评论