ESP32-C3热点WIFI与STM32通讯程序

STM32F103VCT6的串口与ESP32的串口0 通讯,波特率256000;

ESP32建立热点,PC通过访问固定IP建立客户端;

最终实现PC与STM32之间无线WIFI.TCP传输;

4014个字节通讯速度:0.1s内完成.

 串口缓存,大家自行改为环形缓存。勿喷!

//===================上电初始化执行一次=================================

void setup() {

  Serial.begin(256000);

  Serial.onReceive(Serial_InterruptCallback);

   // You can remove the password parameter if you want the AP to be open.

  // a valid password must have more than 7 characters

  if (!WiFi.softAP(ssid, password)) {

    log_e("Soft AP creation failed.");

    while (1);

  }  //----------------------------------------

  server.begin();

  bit_RxFlag=false;

  Buff=0;

  SendLength=0;

  memset(SendBuff,0,sizeof(SendBuff));

  memset(SerialBuff,0,sizeof(SerialBuff));

}

//=============================循环执行函数=============================

void loop() {

  WiFiClient client;

  client = server.available();  // listen for incoming clients

  if (client) {  // if you get a client, 

    Buff =0;

    bit_McutoPCFlag =false;

    bit_SerialDataFlag=false;

    // Serial1.println("New Client.");// print a message out the Serial1 port

    // String currentLine = "";  // make a String to hold incoming data from the client

    while (client.connected())

    {  // loop while the client's connected

       //--------------------------------------------------------

       if(bit_SerialDataFlag)

       {
         i=0;

         while(true){

          if(     (SerialBuff[i-5]==0xbb)
                &&(SerialBuff[i-4]==0xcc)
                &&(SerialBuff[i-3]==0xdd)
                &&(SerialBuff[i-2]==0xee))

            {

                SendLength= SerialBuff[i-1]<<8 | SerialBuff[i];

                //memset(SendlBuff,0,sizeof(SendlBuff));

                for(int j=0;j<(SendLength+6);j++){

                  SendBuff[j]= SerialBuff[i-5+j];

                }

                SendLength+=6;

                bit_McutoPCFlag =true;

                break;

            }

          i++;

        }

        bit_SerialDataFlag=false;

        Buff=0;

       }

      //------------------------MCU-> PC---------------------------

      if (bit_McutoPCFlag)

      {

        client.write(SendBuff,SendLength);

         SendLength=0;

         bit_McutoPCFlag = false;

      }

      //----------------------PC-> MCU-----------------------

      if (client.available()) {  // if there's bytes to read from the client,

       
       //int WiFiClient::read(uint8_t *buf, size_t size)

        byte c = client.read();  // read  byte, then

        Serial.write(c);         // print  out the Serial monitor

      }

    }

    // close the connection:

    client.stop();

    //Serial1.println("Client Disconnected.");

  }

}

Serial_InterruptCallback内注意多字节的缓存。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32中使用ESP8266模块进行WiFi通信,可以通过将ESP8266模块设置为AP模式来实现。AP模式是指ESP8266模块作为无线WiFi热点,允许其他设备(如手机、电脑)搜索到模块的WiFi名字,输入对应的WiFi密码后,连接到ESP8266模块,从而实现手机等设备与ESP8266模块之间的无线(WiFi数据传输。 在编程之前,我们需要了解一些编程思维,比如高内聚低耦合。高内聚意味着将相关的功能放在一起,低耦合意味着将不相关的功能分开。这种“分类”的思想使得每个模块实现一个功能,各功能之间相互联系。同时,我们可以使用I/O模型来管理设备,I/O表示输入和输出,用于控制计算机的数据流动,包括程序和硬件。ESP8266有一系列基础函数和功能函数,可以用来延时、重启、发送数据、判断数据接收等等。 在使用ESP8266模块进行WiFi通信时,我们可以选择不同的工作模式,AP模式是其中之一。除了AP模式外,还有其他更多关于WiFi的运用等待我们去学习和掌握,并且在实际应用中灵活运用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32连接WIFI-ESP8266实战---AP模式运用](https://blog.csdn.net/Psyduck_ing/article/details/105375733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解](https://blog.csdn.net/qq_42523645/article/details/120177865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值