遥控部分控制代码

接收315Mhz编码

void datashow(int data){}; //页面刷新函数,专门给继承使用 void work(int data){ //串口函数调用 //echo("data="+data+"\r\n"); sdata=data; datashow(data); //将参数传给页面中继承函数,如果页面需要刷新,则在页面中写这个继承函数 }

当收到315Mhz遥控信号后,STM32串口发送出 app.work(0xhhhhhh);
则调用work方法,处理或复制编码;页面代码可以继承datashow方法来处理界面元素关联;

#### 发送编码

- appbase 全局控件添加的代码

void sw4053run(int m){ //切换模式核心程序,不记录 m=m&1; echo("SW:"+m+";\r\n"); gpio_mode(0,1); gpio_out(0,m); if (m==1){ //STM32 setrecvmode(0); } else{ //语音模式 setrecvmode(2); } } void send_315Mhz(int md,int mode,int cs){ //发送一个AF编码 mode=0 关闭 1=开启 cs:连续发送次数 int v; int a; str s; if (md==0) return; sw4053run(1); //切换到STM32,串口对应遥控模块 if (mode==0){ //需要关闭;要求设定接收器为双键模式,即md编码开机,而同位码的其他按键关机,因此关机即是发送相邻编码 a=md&0xf; v=md&0xFFFFF0; a++;a++; a=a&0x0f; md=v|a; }

v=md^0x55aa55;
//for (a=0;a<500;a++){};
echo("\n");    //清除前面的串口信息
s="[SD :"+int2hex(md,6)+"|"+int2hex(v,6)+"]\n";
s=setchar(s,3,cs+0x30); //设定SDn的n遍数
echo(s);  //通过串口发送信息到STM32,通过模块发送信号
for (a=0;a<500;a++){}; //延时
a=bind_get("SWMODE");
sw4053run(a); //恢复原样

}

``` 然后,就可以通过调用app.send_315Mhz(0xhhhhhh,1,5);发送信号;