6818,8266的串口进行数据的收发
前言
通过连接ttySAC1和8266的TXRX进行串口的通信,二者需要设置相同的波特率,数据位,奇偶校验同时关闭流控。
1.准备好Qt程序源码
2.通过Ubuntu交叉编译
3.导入开发板
4.连接8266进行通信
一、Qt 6818
1.添加 serialport 到.pro
代码如下(示例):
QT += core gui serialport
2.设置串口
1头文件.h中添加
#include <QSerialPortInfo>//串口所需要的头文件
#include <QSerialPort>
private:
QSerialPort *serial;//串口类
2对应的.cpp中获取串口
//============获取可用串口==============//
foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts()){
//ui->comboBox_portname->addItem(info.portName());
//测试串口是否可用
QSerialPort ser(info);
if(ser.open(QIODevice::ReadWrite)){//空闲
ui->Serial_Box->addItem(ser.portName());
//关闭
ser.close();
}
else{//被占用
ui->Serial_Box->addItem(ser.portName()+"(被占用)");
}
3打开并设置串口
if(ui->openSerialBtn->text()=="openSerial"){//打开
serial = new QSerialPort(ui->Serial_Box->currentText(),this);
if(!serial->open(QIODevice::ReadWrite)){
QMessageBox::warning(this,"提示","打开串口失败!");
serial->deleteLater();
return;
}
}
serial->setBaudRate(QSerialPort::Baud115200); //1设置波特率
serial->setDataBits(QSerialPort::Data8); //2设置数据位长度
serial->setParity(QSerialPort::NoParity); //3设置校验位
serial->setStopBits(QSerialPort::OneStop); //4设置停止位
serial->setFlowControl(QSerialPort::NoFlowControl);//5关闭流控
我们的8266接6818的ttySAC1,ttySAC0是9pin转232的输出(烧录用的)。
3.编译到6818
将源代码复制到共享目录
执行armqmake
执行make生成 Serial文件
Serial烧录到6818执行即可!!
二、8266
1.代码示例
声明一下 我用的是 ESP12-F,引脚也是一样的
void setup()
{
Serial.begin(115200);
delay(10);
Serial.println(ssid);
WiFi.begin(ssid, password); //启动
//在这里检测是否成功连接到目标网络,未连接则阻塞。
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
}
Serial.println(WiFi.localIP());
//设置ticker 定时执行获取天气函数
ticker.attach(1, tickerCount);
myStepper.setSpeed(120);
}
源代码放链接,有需要自取哈。
三、连接后效果
总结
以上就是6818通过串口通信8266的步骤,主要演示实现过程,有讲得不细致的地方,请多多包涵~
附上程序源码,仅供参考。
链接: https://pan.baidu.com/s/1PTvLZ9igtHH15uXRtwwZww?pwd=up49 提取码: up49