首页 > 其他分享 >ESP32串口通信

ESP32串口通信

时间:2024-11-13 16:14:44浏览次数:3  
标签:isSending ESP32 串口 通信 发送 按键 Serial

基于 Arduino IDE 开发环境编写的 ESP32 程序示例:通过串口与电脑通信,按下boot按键开始以 1Hz 的频率发送学号,再次按下则停止发送

// 引入ESP32的相关库
#include <Arduino.h>

// 定义学号,这里假设学号是123456,你需要替换成你自己的真实学号
const char* studentID = "123456";

// 定义按键引脚,ESP32的boot按键对应的引脚
const int bootPin = 0;

// 用于标记是否正在发送数据
bool isSending = false;

// 上次按键状态
int lastButtonState = HIGH;

// 记录上次发送数据的时间
unsigned long lastSendTime = 0;

// 发送数据的时间间隔,1Hz即1000毫秒
const unsigned long sendInterval = 1000;

void setup() {
    // 初始化串口通信,波特率设置为115200
    Serial.begin(115200);

    // 设置按键引脚为输入模式,并启用内部上拉电阻
    pinMode(bootPin, INPUT_PULLUP);
}

void loop() {
    // 读取当前按键状态
    int buttonState = digitalRead(bootPin);

    // 检测按键是否按下(从高电平变为低电平)
    if (buttonState == LOW && lastButtonState == HIGH) {
        // 切换发送状态
        isSending =!isSending;
        if (isSending) {
            Serial.println("开始发送学号...");
        } else {
            Serial.println("停止发送学号.");
        }
    }

    // 更新上次按键状态
    lastButtonState = buttonState;

    // 如果处于发送状态且距离上次发送时间超过了设定的间隔时间
    if (isSending && (millis() - lastSendTime >= sendInterval)) {
        // 通过串口发送学号
        Serial.println(studentID);
        // 更新上次发送时间
        lastSendTime = millis();
    }
}

标签:isSending,ESP32,串口,通信,发送,按键,Serial
From: https://blog.csdn.net/2401_87110829/article/details/143746313

相关文章

  • Xamarin.Forms-手机串口调试程序开发文档
    Xamarin.Forms手机串口调试程序开发文档1.开发背景:因工作性质特殊,需要通过手持设备与电力设备进行报文通讯,达到设备状态、地址码等数据的下发及查询功能。但因为后期手持设备厂家停产,维护不及时,造成设备稀缺,无法满足正常工作需要,特制作此手机APP,通过串口驱动连接串口转红外设备......
  • HarmonyOS蓝牙串口协议(SPP)详解:实现设备间可靠数据交换
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在智能设备互联互通的世界里,蓝牙技术扮......
  • 在通讯领域,特别是在自由空间光通信(Free Space Optics, FSO)通道模拟中,选择合适的模型需
    在通讯领域,特别是在自由空间光通信(FreeSpaceOptics,FSO)通道模拟中,选择合适的模型需要考虑模型对动态变化的光信号传播环境的适应性和预测能力。根据搜索结果,以下是一些可能适合通讯领域FSO通道模拟的模型:TACTiS-2:这是一个灵活的多变量概率时间序列预测模型,它简化了attenti......
  • 《TCP/IP网络编程》学习笔记 | Chapter 11:进程间通信
    《TCP/IP网络编程》学习笔记|Chapter11:进程间通信《TCP/IP网络编程》学习笔记|Chapter11:进程间通信进程间通信的基本概念通过管道实现进程间通信通过管道进行进程间双向通信运用进程间通信习题(1)什么是进程间通信?分别从概念和内存的角度进行说明。(2)进程间通信需要......
  • HTTP的诞生:它解决了哪些网络通信难题?
    引言在互联网发展初期,网络通信面临许多挑战,例如设备兼容性、数据传输标准化以及信息访问效率等问题。超文本传输协议(HTTP,HyperTextTransferProtocol)的出现,成功解决了这些问题,使全球信息交换更加顺畅,成为了现代互联网的核心基石。本文将从技术和应用的角度分析HTTP解决了哪些......
  • 【MATLAB源码-第290期】基于matlab的MRC检测算法在OTFS通信系统中的仿真,输出误码率曲
    操作环境:MATLAB2022a1、算法描述在无线通信系统的发展历程中,随着频谱的日益紧张以及高频通信需求的增加,传统的通信方法逐渐显露出其在复杂信道环境中的局限性。尤其是在高速移动、多径传播和多普勒效应严重的环境下,传统的OFDM(正交频分复用)等技术往往难以应对这些挑战。因此......
  • 使用MethodChannel与原生程序通信
    文章目录1知识回顾2示例代码3经验总结我们在上一章回中介绍了MethodChannel的使用方法,本章回中将介绍EventChannel的使用方法.闲话休提,让我们一起TalkFlutter吧。1知识回顾我们在前面章回中介绍了通道的概念和作用,并且提到了通道有不同的类型,本章回将其......
  • 基于ESP32的桌面小屏幕实战[3]:硬件设计之主控模块、墨水屏和TP、USB转串口、蜂鸣器、
    1.主控模块主控用的是ESP32-S。在立创商城搜索它,找到ESP32-S,复制编号。回到嘉立创EDA,用编号搜原件。把原件放置在原理图中。按照之前的外设接口说明接线。注意,给引脚命名的时候,要单击鼠标右键,点击属性,在名称处编辑。打开这个芯片的数据手册,找到外围设计原理图。参......
  • USB、CAN、CAN FD、SPI、IIC、UART常见的通信协议简介
    USB、CAN、CANFD、SPI、IIC、UART都是常见的通信协议,它们在许多领域都有广泛的应用。以下是对这些通信协议的详细介绍:USB(通用串行总线)定义:USB(UniversalSerialBus)是一种计算机与外围设备进行数据交互的通信协议。版本与速度:常用的版本有USB2.0(480Mbps)和USB3.0(速率更高)。......
  • ESP32开发__搭建VSCode开发环境试编译项目
    目录1.概述2.安装相关必要插件3.VSCode及相关扩展件安装3.1.VSCode3.2.ESP-IDFVisualStudioCodeExtension3.3.ConfigureESP-IDF4.Demo试运行4.1.打开工程4.2.连接设备并配置端口4.3.配置工程4.3.1. 设置“目标”芯片4.3.2.menuconfig配置工程选......