HardwareSerial库实现了对串口1的使用,HardwareSerial类在声明对象时接收一个输入参数(0、1、2),分别代表Serial、Serial1、Serial2;
如上图:
ESP32CAM的TX也就是U0TXD对应引脚1。
ESP32CAM的RX也就是U0RXD对应引脚3。
所以MySerial_stm32.begin初始化时,第三个、第四个参数是3和1。
参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #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 ); } |
软串口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #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 ); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2020-03-23 树莓派文字转语音兼容python3
2019-03-23 (3) 文件系统上传
2019-03-23 (2)esp8266多国语言翻译系统
2019-03-23 esp8266 免费wifi强推广告神器(0) 项目介绍
2019-03-23 esp8266 免费wifi强推广告神器(2) 直接打电话
2019-03-23 (1)ESP8266微信门铃