arduino 串口通信,以及命令分析。-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3729|回复: 0

arduino 串口通信,以及命令分析。

[复制链接]
发表于 2020-6-11 23:57 | 显示全部楼层 |阅读模式
本帖最后由 z01228 于 2020-6-11 23:56 编辑

      我也是刚刚接触单片机编程。arduino 系列 esp系列开发板,这几个小东西很有意思。先后也做了 网络遥控电动窗帘 ,投影仪幕布联动器,网络红外遥控器。这个几个东西,很有意思 也方便了生活。小发明就应该这样。
      最近做一个新东西在编程中,其中也遇到了一些情况。程序中用到了 U8g2和AccelStepper库。我使用的是nano这个开发板,在极力修改程序压小体时。没想到u8g2在下命令给OLED12864显示时会影响步进电机的运行情况,这个是不允许的。于是想到了用两个开发板,一个用于显示以及编码器一个用于控制步进电机 并且使用串口传递命令以及数据实现同步运行(变向2线程)。
    下面就是我的试验情况,用软件模拟出一个串口与硬件串口进行通信。其中附带了命令、参数的分析,在实际应用是连接两个开发板的Rx-Tx,Tx-Rx就可以了波特率要设置清楚;目前就只能分析两个命令还是数字型的和一个参数 并且分给不同的变量,但是像Abc这样的字母就不能分析了 有没有大师看看是什么问题。
   效果图: 串口通信实验.jpg


   程序:
[mw_shl_code=arduino,true]/*Nano的通讯实验(2)  软件串口通信与硬件串口通信
* 实际使用时可以连接两个开发板进行命令参数的传递
注:连线要接对。TX-RX RX-TX
程序里关于软串口的定义是这样的:
SoftwareSerial SerialA(RX,TX);
*/

#include<SoftwareSerial.h>
SoftwareSerial mySerial(2,3);
String Serial_String="";
char cmd1;        //指令字符
char cmd2;        //指令字符
long data;        //指令参数(可以是正常正负)
long data1=-1224;

void setup() {
Serial.begin(9600);
mySerial.begin(9600);


}
void loop() {
    mySerial.print(14); //电机指令是两位数 且为1-9不可以出现0,如果10,01,00 这种情况。后期数据分析分别分给cmd1,cmd2用于
    mySerial.print(data1);
    delay(5000);
  if (Serial.available()>0) {     // 检查串口缓存是否有数据等待传输
    delay(100);
  if (Serial.available()>0) {
    cmd1 = Serial.read();        // 获取上位机电机标志位
    Serial.print(F("cmd1 = "));
    Serial.print(cmd1);   
    Serial.print(F(" , "));
    delay(10);
   
    cmd2 = Serial.read();        // 获取上位机电机标志位
    Serial.print(F("cmd1 = "));
    Serial.print(cmd2);   
    Serial.print(F(" , "));
    delay(10);
   
    data = Serial.parseInt();   // 获取上位机电机指令中参数信息  
    Serial.print(F("data = "));
    Serial.print(data);   
    Serial.print(F("  "));
    Serial.println(F(""));
   delay(10);
   }
   while(Serial.read()>= 0){}
   
  }
}[/mw_shl_code]




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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:54 , Processed in 0.075679 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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