查看: 136|回复: 0

天问51开发板结合WIFI模块通信

[复制链接]

1

主题

1

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2022-11-23 21:44:23 | 显示全部楼层 |阅读模式
本帖最后由 wzr1999 于 2022-11-23 21:44 编辑

天问51开发板作为增强型51单片机,它比传统的51单片机性能提升很多,天问BLOCK编程也十分方便。51单片机价格便宜,适用于一些低端低成本的场合。随着物联网的普及,WIFI模块的应用也十分广泛,基于51单片机的WIFI模块通信可以应用于许多场景。
   本次项目基于天问STC16开发板为主,结合ESP8266模块和板载NTC热敏电阻进行测试。

   其中利用了NetAssist工具进行测试,功能还略有不足,后续还会完善(服务器下发命令)。
   主要代码如下:
/*描述该功能:主循环
  @param:NULL  
  @retval: void
*/
void loop()
{
  nix_display_clear();//数码管清屏
  temp = ntc_read_temp();
  nix_display_float(temp,1);//数码管显示浮点数
  P4_1 = !P4_1;//LED闪烁
  delay(1000);
  sprintf(wendu,"temp:%f\n",temp);
  uart_putstr(UART_4,wendu);
  uart_putstr(UART_4,"TEST\n");
}


//
/*描述该功能:串口发送AT命令给WIFI模块
  @param:cmd:发送的命令  ack1:返回的数据
  @retval:如果为1发送成功,0为发送失败
*/
bit ESP8266_Send_AT_Cmd(char *cmd, char *ack1){
  bit ack = 0;
  uint8 config_Delay = 5;
  uart_putstr(UART_4,cmd);
  printf("Line:41\n");
  do
  {
    printf("Line:44\n");
    if(rxd4_flag){
      rxd4_flag = 0;
      printf("Line:46\n");
      if(strpos((const char*)rxd4_buf,ack1)){
        ack = 1;
        printf("find ack ok\r\n");
        rxd4_buf[rxd4_index] = '\0';
        printf("%s\r\n",rxd4_buf);
        memset(rxd4_buf,0,rxd4_index);
        rxd4_index = 0;
        break;
      }
    }
    delay(1000);
  }while(config_Delay--);
  return ack;
}
/*描述该功能:定时器0超时接收中断
  @param:void
  @retval: void
*/
void T_IRQ0(void) interrupt 1 using 2{
    //TR0 = 0;
    nix_scan_callback();//数码管扫描回调函数
    if(start_timer2){
      rxd4_time_cnt++;
      if(rxd4_time_cnt > MAX_REV_TIME){
        rxd4_time_cnt = 0;
        rxd4_flag = 1;
        memset(wendu,0,sizeof(wendu));//定时2s清除wendu数组
        start_timer2 = 0;
      }

    }
}


因为平台限制,以上是代码的一部分,如果大家想要整个代码的话,可以私信我。如果有任何问题都可以告诉我。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2023-2-4 06:30 , Processed in 0.295281 second(s), 22 queries .

Powered by Discuz!

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表