if(receivedata[k]==‘!’) //收到标志位
{
k=0;
X=receivedata[103]; //X为全局变量,将取得字符赋给他
flag=1; //接收完成标记位
}else{
k++;
}
}
}
主程序利用标志位减少在中断里的程序执行代码
void main(void)
{
ConfigTimer0();//配置定时器0
next=0;
isSend=0;
time2_init();
UsartInit(); //串口初始化
while(1)
{
if(isSend==0){ //标志位
led=0;
}else{
led=1;
isSend=0;
sendString(“{“method”:“update”,“gatewayNo”:“02”,“userkey”:“30e217750d7e48008d8595105a14df2d”}&^!”); //登录信息
}
if(flag==0) //标志位
{
led1=0;
}else{
led1=1;
flag=0;
sendString(“{“method”:“response”,“result”:{“successful”:true,“message”:“Write serial successful 0”}}&^!”);
dj_control();
DJ_turn();
X=‘4’;
receivedata[103]=0;
}
if( dj_select != 0)
{
dj_select = 0;
}
}
}
因为材料原因,所有的硬件的连接我都只用了热熔胶固定,需要注意的一点是舵机的固定,我尝试了很多方法后采用的也是热熔胶固定,具体看图。两个LED是为了我能更直观确定数据的收发情况,可以以省略。
更多成品展示参见我的上一篇博文:博文地址!!