• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
使用ESP32CAM测试串口发数据

 

 

 

 

 

HardwareSerial库实现了对串口1的使用,HardwareSerial类在声明对象时接收一个输入参数(0、1、2),分别代表Serial、Serial1、Serial2;

如上图: 

ESP32CAM的TX也就是U0TXD对应引脚1。

ESP32CAM的RX也就是U0RXD对应引脚3。

所以MySerial_stm32.begin初始化时,第三个、第四个参数是3和1。

 

参考:

#include <HardwareSerial.h>    //导入ESP32串口操作库,使用这个库我们可以把串口映射到其他的引脚上使用

//我们测试需要用到的串口,ESP32一共有3个串口,串口0应该是用于程序烧写和打印输出调试用的,所以我们只用1和2
HardwareSerial MySerial_stm32(1);  

void setup() {
  Serial.begin(115200);
  //串口的开启,这里还可以传一些别的参数,但是我们只传入下面四个最重要的:波特率,默认SERIAL_8N1为8位数据位、无校验、1位停止位,后面两个分别为 RXD,TXD 引脚
  MySerial_stm32.begin(115200, SERIAL_8N1, 3, 1);

  //MySerial_stm32.updateBaudRate(9600);  //重新设置波特率;  
  //MySerial_stm32.end();  //失能串口,释放占用的资源
}

void loop() {
  MySerial_stm32.println("usart test!!!");
  delay(1000);
}

  

 

 

 

软串口

#include<SoftwareSerial.h>
  
#define phonenum_call "15529672865"  // 最好移动卡  联通卡支持度不是很好
   
 
//单片机软串口RX D4->短信 TX
//单片机软串口TX D5->短信 RX
SoftwareSerial softSerial1(12,13);//,与短信模块通信
 int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改
  {
  
        softSerial1.println("AT");//对GSM发送AT,看响应
        char comdata=0;//判断接收到的最后一位是否对
        String phone="";//电话号码存储
        phone="AT+CMGS=\""+phonenum+'\"'; 
         while (softSerial1.available() > 0){
        comdata = softSerial1.read();  //每次读一个char字符,并相加
        delay(2);
        }  
        softSerial1.println("AT");//对GSM发送AT,看响应
        delay(1000);
        while (softSerial1.available() > 2){
        comdata = softSerial1.read();  //每次读一个char字符,并相加
        Serial.print(comdata);//错误
        delay(2);
        }
        if(comdata!='K')//判断没有收到OK
        {
        Serial.println("error1");//错误
//        return  0;
        }
        comdata=0;   
        softSerial1.println("AT+CMGF=1");//设置GSM文本模式
        delay(500);
        while (softSerial1.available() > 2){
        comdata = softSerial1.read();  //每次读一个char字符,并相加
        delay(2);
        }
          
        if(comdata!='K')//没有收到OK
        {
        Serial.println("error2");
//        return  0;
        }
        comdata=0;
        softSerial1.println(phone);//发送的目标号码
        delay(1000);
        while (softSerial1.available() > 1){
        comdata = softSerial1.read();  //每次读一个char字符,并相加
        delay(2);
        }
          
        if(comdata!='>')//没有收到>
        {
        Serial.println("error3");
//        return  0;
        }
        comdata=0;
        softSerial1.print(text);//发送所写内容
        delay(500);
        softSerial1.write(0x1A); //结束输入文本,并发送
        Serial.println("success");  //成功 
      
 }
  
  
   
void setup(){
//硬串口
Serial.begin(9600);
//监听软串口通信
softSerial1.begin(9600);
softSerial1.listen();
delay(5000);
}
 
String  comdata;
 
void loop(){
      
    if(Serial.available()>0){
      delay(1);//影响读取速度
      comdata = Serial.readString();
      //String comdata="dasdas";
      sendMeg("15529672865","msg to send");//给15147300333  发送信息
      comdata="";
      delay(1000);    
      }
      
}

  

 

posted on 2022-03-23 17:08  MKT-porter  阅读(2676)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3