├── .gitignore ├── logo.rc ├── logo.ico ├── 虚拟串口工具 ├── VSPD.zip └── VSPD │ ├── snd.nfo │ ├── vspd.exe │ ├── 软件下载.txt │ └── Cracked │ ├── vspdctl.dll │ └── vspdconfig.exe ├── res.qrc ├── main.cpp ├── uart_setting.h ├── MySerial.pro ├── README.md ├── uart_interaction.h ├── uart_core.h ├── uart_setting.cpp ├── uart_core.cpp ├── user_interaction.cpp ├── uart_setting.ui ├── MySerial_zh_CN.ts └── uart_interface.ui /.gitignore: -------------------------------------------------------------------------------- 1 | *.user 2 | *.qm 3 | -------------------------------------------------------------------------------- /logo.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "logo.ico" -------------------------------------------------------------------------------- /logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/logo.ico -------------------------------------------------------------------------------- /虚拟串口工具/VSPD.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD.zip -------------------------------------------------------------------------------- /虚拟串口工具/VSPD/snd.nfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD/snd.nfo -------------------------------------------------------------------------------- /虚拟串口工具/VSPD/vspd.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD/vspd.exe -------------------------------------------------------------------------------- /虚拟串口工具/VSPD/软件下载.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD/软件下载.txt -------------------------------------------------------------------------------- /虚拟串口工具/VSPD/Cracked/vspdctl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD/Cracked/vspdctl.dll -------------------------------------------------------------------------------- /虚拟串口工具/VSPD/Cracked/vspdconfig.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weiqifa0/qtSerial/HEAD/虚拟串口工具/VSPD/Cracked/vspdconfig.exe -------------------------------------------------------------------------------- /res.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | logo.ico 4 | 5 | 6 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include "uart_interaction.h" 2 | #include 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | QTranslator translator; 9 | translator.load("./MySerial_zh_CN.qm"); 10 | a.installTranslator(&translator); 11 | 12 | serial w; 13 | w.show(); 14 | 15 | return a.exec(); 16 | } 17 | -------------------------------------------------------------------------------- /uart_setting.h: -------------------------------------------------------------------------------- 1 | #ifndef SETTING_H 2 | #define SETTING_H 3 | 4 | #include 5 | #include "uart_core.h" 6 | 7 | namespace Ui { 8 | class setting; 9 | } 10 | 11 | class setting : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit setting(QWidget *parent = 0); 17 | void find_available_serial_ports_and_add(Uartcore* m_serial_); 18 | ~setting(); 19 | 20 | private slots: 21 | void on_buttonBox_accepted(); 22 | 23 | private: 24 | Ui::setting *ui; 25 | Uartcore *uart_core_; 26 | }; 27 | 28 | #endif // SETTING_H 29 | -------------------------------------------------------------------------------- /MySerial.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2022-01-20T22:04:57 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui serialport 8 | 9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 10 | 11 | CONFIG += c++11 12 | TARGET = MySerial 13 | TEMPLATE = app 14 | 15 | 16 | SOURCES += main.cpp\ 17 | user_interaction.cpp \ 18 | uart_setting.cpp \ 19 | uart_core.cpp 20 | 21 | HEADERS += \ 22 | uart_core.h \ 23 | uart_setting.h \ 24 | uart_interaction.h 25 | 26 | FORMS += \ 27 | uart_interface.ui \ 28 | uart_setting.ui 29 | 30 | TRANSLATIONS += \ 31 | MySerial_zh_CN.ts 32 | 33 | DISTFILES += \ 34 | MySerial_zh_CN.qm 35 | 36 | RC_FILE = logo.rc 37 | 38 | # Default rules for deployment. 39 | qnx: target.path = /tmp/$${TARGET}/bin 40 | else: unix:!android: target.path = /opt/$${TARGET}/bin 41 | !isEmpty(target.path): INSTALLS += target 42 | 43 | RESOURCES += \ 44 | res.qrc 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # qtSerial 2 | 【软件下载】 3 | 这个是最新的版本,功能目前比较简单,能够做到显示信息接收。 4 | https://github.com/weiqifa0/qtSerial/releases/tag/v1.1.4 5 | 6 | 7 | master分支有一个基础例程 8 | main 分支是软件的代码分支 9 | 10 | # QT软件和资料下载地址 11 | 可以用下面的QT工具来编译这个项目,当然,有人想提交修改的也没问题。 12 | ```C 13 | 软件和入门手册下载地址 链接:https://pan.baidu.com/s/1VvDjzhCNjPR8xcRHOUfYgg?pwd=9999 提取码:9999 14 | ``` 15 | 16 | # 软件界面图片 17 | ### 更新了软件logo和界面 18 | ![image](https://user-images.githubusercontent.com/11375905/154845786-1bead408-57b2-42cb-9dc8-998cc6ccdf25.png) 19 | 20 | ![image](https://user-images.githubusercontent.com/11375905/153223952-9a390adf-3e5d-4ad3-8e7f-471e2cbf86b2.png) 21 | 22 | ### 更新解决波特率设置成1500000阻塞UI的问题 23 | ![image](https://github.com/weiqifa0/qtSerial/assets/11375905/861f7005-9cb3-44cf-b125-13d3281b7f4b) 24 | 25 | ### 在ubuntu上编译的工具截图 26 | ![image](https://github.com/weiqifa0/qtSerial/assets/11375905/49545f23-bfd0-405a-b41b-0a528bbaec02) 27 | 28 | 29 | 30 | # 开发功能介绍 31 | 32 | * 接收显示框,默认一个比较淡的护眼色 —— 已完成 33 | * 发送数据框—— 已完成 34 | * 串口设置—— 已完成 35 | * 状态栏、串口连接、发送、接收数据显示—— 已完成 36 | * 日志dump到文件—— 未完成 37 | * 定时发送—— 未完成 38 | * 清空发送、接收框—— 已完成 39 | * 时间戳显示—— 已完成 40 | -------------------------------------------------------------------------------- /uart_interaction.h: -------------------------------------------------------------------------------- 1 | #ifndef SERIAL_H 2 | #define SERIAL_H 3 | 4 | #include 5 | #include "uart_core.h" 6 | #include "qserialport.h" 7 | 8 | namespace Ui { 9 | class serial; 10 | } 11 | 12 | class serial : public QMainWindow 13 | { 14 | Q_OBJECT 15 | 16 | #define NO_SERIAL_PORT tr("No Available Serial Port") 17 | 18 | public: 19 | explicit serial(QWidget *parent = 0); 20 | ~serial(); 21 | 22 | private slots: 23 | void on_refreshButton_clicked(); 24 | void on_openPortButton_clicked(); 25 | void on_sendButton_clicked(); 26 | void readSerialData(); 27 | void on_clearTextButton_clicked(); 28 | void on_actionExit_triggered(); 29 | void on_openPortButton_3_clicked(); 30 | void on_portComboBox_activated(const QString &arg1); 31 | 32 | private: 33 | void show_text(const QString &text); 34 | void status_bar_initialization(); 35 | private: 36 | Ui::serial *ui; 37 | Uartcore *uart_core_; 38 | QLabel* rx_display_; 39 | QLabel* tx_display_; 40 | QLabel* connect_display_; 41 | qint64 rx_quantity_ = 0; 42 | qint64 tx_quantity_ = 0; 43 | bool is_the_serial_port_open_ = false; 44 | }; 45 | 46 | #endif // SERIAL_H 47 | -------------------------------------------------------------------------------- /uart_core.h: -------------------------------------------------------------------------------- 1 | #ifndef UARTCORE_H 2 | #define UARTCORE_H 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | namespace patch 14 | { 15 | template < typename T > std::string to_string( const T& n ) 16 | { 17 | std::ostringstream stm ; 18 | stm << n ; 19 | return stm.str() ; 20 | } 21 | } 22 | 23 | 24 | class Uartcore:public QObject 25 | { 26 | Q_OBJECT 27 | 28 | public: 29 | Uartcore(); 30 | QStringList serial_port_scanning(); 31 | bool open(QString serialName, int baudRate, int data_bit, int parity_bit, int stop_bit, int flow_control); 32 | void close(); 33 | void send_data(QByteArray &data); 34 | QByteArray get_data_buffer_content(); 35 | void clear_data_buffer_content(); 36 | QByteArray hex_string_to_bytearray(QString HexString); 37 | 38 | public: 39 | QString serial_name_; 40 | int baud_rate_ = 115200; 41 | int data_bits_ = 8; 42 | int parity_bits_ = 0; 43 | int stop_bits_ = 1; 44 | int flow_control_ = 0; 45 | 46 | signals: 47 | void read_signal(); 48 | 49 | public slots: 50 | void read_lower_computer_dataer_computer_dataer_computer_data(); 51 | 52 | private: 53 | QSerialPort *serial_port_ = nullptr; 54 | QByteArray serial_buff_; 55 | }; 56 | #endif // UARTCORE_H 57 | 58 | -------------------------------------------------------------------------------- /uart_setting.cpp: -------------------------------------------------------------------------------- 1 | #include "uart_setting.h" 2 | #include "uart_interaction.h" 3 | #include "ui_uart_setting.h" 4 | 5 | setting::setting(QWidget *parent) : 6 | QDialog(parent), 7 | ui(new Ui::setting){ 8 | ui->setupUi(this); 9 | } 10 | 11 | void setting::find_available_serial_ports_and_add(Uartcore* serial_core) { 12 | uart_core_ = serial_core; 13 | QStringList serialStrList; 14 | serialStrList = uart_core_->serial_port_scanning(); 15 | for (int i=0; icomComboBox->addItem(serialStrList[i]); // 在comboBox那添加串口号 17 | } 18 | } 19 | 20 | setting::~setting(){ 21 | delete ui; 22 | } 23 | 24 | void setting::on_buttonBox_accepted(){ 25 | uart_core_->serial_name_ = ui->comComboBox->currentText(); 26 | uart_core_->baud_rate_ = ui->baudComboBox->currentText().toInt(); 27 | uart_core_->data_bits_ = ui->bitComboBox->currentText().toInt(); 28 | uart_core_->parity_bits_ = ui->parityComboBox->currentText().toInt(); 29 | uart_core_->stop_bits_ = ui->stopComboBox->currentText().toInt(); 30 | uart_core_->flow_control_ = ui->flowctrComboBox->currentText().toInt(); 31 | qDebug()<< "serial_name_:" <serial_name_; 32 | qDebug()<< "baud_rate_:" <baud_rate_; 33 | qDebug()<< "data_bits_:" <data_bits_; 34 | qDebug()<< "parity_bits_:" <parity_bits_; 35 | qDebug()<< "stop_bits_:" <stop_bits_; 36 | qDebug()<< "flow_control_:" <flow_control_; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /uart_core.cpp: -------------------------------------------------------------------------------- 1 | #include "uart_core.h" 2 | 3 | Uartcore::Uartcore(){ 4 | serial_port_ = new QSerialPort; 5 | } 6 | 7 | // 扫描可用串口 8 | QStringList Uartcore::serial_port_scanning() { 9 | QStringList serialStrList; 10 | foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){ 11 | serial_port_->setPort(info); 12 | // 判断端口能否以读写方式打开 13 | if(serial_port_->open(QIODevice::ReadWrite)){ 14 | serialStrList.append(serial_port_->portName()); 15 | // 然后自动关闭等待人为开启(通过"打开串口按钮") 16 | serial_port_->close(); 17 | } 18 | } 19 | return serialStrList; 20 | } 21 | 22 | // 打开串口 23 | bool Uartcore::open(QString serialName, int baudRate, int data_bit, int parity_bit, int stop_bit, int flow_control) { 24 | serial_port_->setPortName(serialName); 25 | if (serial_port_->open(QIODevice::ReadWrite)) { 26 | serial_port_->setBaudRate(baudRate); 27 | serial_port_->setDataBits((QSerialPort::DataBits)data_bit ); 28 | serial_port_->setParity((QSerialPort::Parity)parity_bit ); 29 | serial_port_->setStopBits((QSerialPort::StopBits)stop_bit ); 30 | serial_port_->setFlowControl((QSerialPort::FlowControl)flow_control ); 31 | serial_port_->setReadBufferSize(0);//設置緩衝區大小為無窮大 32 | connect(serial_port_, SIGNAL(readyRead()), this, SLOT(read_lower_computer_dataer_computer_dataer_computer_data())); 33 | connect(serial_port_, SIGNAL(readyRead()), this, SIGNAL(read_signal())); 34 | return true; 35 | } 36 | 37 | return false; 38 | } 39 | 40 | // 关闭串口 41 | void Uartcore::close() { 42 | serial_port_->clear(); 43 | serial_port_->close(); 44 | } 45 | 46 | // 发送数据给下位机 47 | void Uartcore::send_data(QByteArray &data){ 48 | serial_port_->write(data); 49 | } 50 | 51 | // 读取下位机发来数据 52 | void Uartcore::read_lower_computer_dataer_computer_dataer_computer_data() { 53 | serial_buff_ = serial_port_->readAll(); 54 | } 55 | 56 | // 获得读取数据缓冲区 57 | QByteArray Uartcore::get_data_buffer_content() { 58 | return serial_buff_; 59 | } 60 | 61 | void Uartcore::clear_data_buffer_content(){ 62 | serial_buff_.clear(); 63 | } 64 | 65 | QByteArray Uartcore::hex_string_to_bytearray(QString HexString) 66 | { 67 | bool ok; 68 | QByteArray data; 69 | HexString = HexString.trimmed(); 70 | HexString = HexString.simplified(); 71 | QStringList sl = HexString.split(" "); 72 | 73 | foreach (QString s, sl){ 74 | if(!s.isEmpty()){ 75 | char c = static_cast(s.toInt(&ok, 16) & 0xFF); 76 | if(ok){ 77 | data.append(c); 78 | } else { 79 | QMessageBox::warning(nullptr, tr("Error: "), 80 | QString(tr("Illegal hex string:"))+ QString(" \"%1\"").arg(s)); 81 | } 82 | } 83 | } 84 | return data; 85 | } 86 | 87 | -------------------------------------------------------------------------------- /user_interaction.cpp: -------------------------------------------------------------------------------- 1 | #include "uart_interaction.h" 2 | #include "uart_setting.h" 3 | #include "ui_uart_interface.h" 4 | 5 | serial::serial(QWidget *parent) : 6 | QMainWindow(parent), 7 | ui(new Ui::serial){ 8 | ui->setupUi(this); 9 | ui->retranslateUi(this); 10 | 11 | // 初始化串口 12 | uart_core_ = new Uartcore; 13 | 14 | // 寻找可用串口 15 | QStringList serialStrList; 16 | serialStrList = uart_core_->serial_port_scanning(); 17 | for (int i=0; iportComboBox->addItem(serialStrList[i]); // 在comboBox那添加串口号 19 | } 20 | 21 | // 默认设置波特率为115200(第5项) 22 | ui->baudComboBox->setCurrentIndex(5); 23 | // 当下位机中有数据发送过来时就会响应这个槽函数 24 | connect(uart_core_, SIGNAL(read_signal()), this, SLOT(readSerialData())); 25 | 26 | status_bar_initialization(); 27 | 28 | ui->recvBrowser->setStyleSheet("background-color: rgb(204, 232, 207);"); 29 | } 30 | 31 | serial::~serial(){ 32 | delete ui; 33 | } 34 | 35 | void serial::status_bar_initialization(){ 36 | QStatusBar* bar = ui->statusBar; 37 | rx_display_ = new QLabel; 38 | rx_display_->setMinimumSize(300,20); 39 | rx_display_->setFrameShape(QFrame::NoFrame); 40 | rx_display_->setFrameShadow(QFrame::Plain); 41 | rx_display_->setText(tr("RX")+": 0"); 42 | rx_display_->setStyleSheet("QLabel { color : black; }"); 43 | 44 | tx_display_ = new QLabel; 45 | tx_display_->setMinimumSize(300,20); 46 | tx_display_->setFrameShape(QFrame::NoFrame); 47 | tx_display_->setFrameShadow(QFrame::Plain); 48 | tx_display_->setText((tr("TX") + ": 0")); 49 | tx_display_->setStyleSheet("QLabel { color : black; }"); 50 | 51 | connect_display_ = new QLabel; 52 | connect_display_->setMinimumSize(300,20); 53 | connect_display_->setFrameShape(QFrame::NoFrame); 54 | connect_display_->setFrameShadow(QFrame::Plain); 55 | connect_display_->setText(tr("Serial Port not connect")); 56 | connect_display_->setStyleSheet("QLabel { color : black; }"); 57 | 58 | bar->addWidget(connect_display_); 59 | bar->addWidget(rx_display_); 60 | bar->addWidget(tx_display_); 61 | } 62 | 63 | void serial::on_refreshButton_clicked() { 64 | QStringList serialStrList; 65 | serialStrList = uart_core_->serial_port_scanning(); 66 | ui->portComboBox->clear(); 67 | for (int i=0; iportComboBox->addItem(serialStrList[i]); 69 | } 70 | } 71 | 72 | void serial::on_openPortButton_clicked() { 73 | if (ui->portComboBox->currentText().isEmpty()) { 74 | show_text(NO_SERIAL_PORT); 75 | return; 76 | } 77 | if(is_the_serial_port_open_ == false) { 78 | if(uart_core_->open(ui->portComboBox->currentText(), 79 | ui->baudComboBox->currentText().toInt(), 80 | uart_core_->data_bits_, 81 | uart_core_->parity_bits_, 82 | uart_core_->stop_bits_, 83 | uart_core_->flow_control_)) { 84 | // 关闭下拉列表使能 85 | ui->portComboBox->setEnabled(false); 86 | ui->baudComboBox->setEnabled(false); 87 | ui->refreshButton->setEnabled(false); 88 | ui->openPortButton_3->setEnabled(false); 89 | // 修改按钮名称 90 | ui->openPortButton->setText(tr("Close Port")); 91 | connect_display_->setText(tr("Port already opended")); 92 | connect_display_->setStyleSheet("QLabel { color : green; }"); 93 | 94 | is_the_serial_port_open_ = true; 95 | } 96 | } else { 97 | // 关闭串口 98 | uart_core_->close(); 99 | // 重新开启下拉列表使能 100 | ui->portComboBox->setEnabled(true); 101 | ui->baudComboBox->setEnabled(true); 102 | ui->refreshButton->setEnabled(true); 103 | ui->openPortButton_3->setEnabled(true); 104 | // 恢复按钮名称 105 | ui->openPortButton->setText(tr("Open Port")); 106 | connect_display_->setText(tr("Port already Closed")); 107 | connect_display_->setStyleSheet("QLabel { color : black; }"); 108 | 109 | is_the_serial_port_open_ = false; 110 | } 111 | } 112 | 113 | void serial::on_sendButton_clicked(){ 114 | QByteArray send_data; 115 | send_data = ui->sendTextEdit->toPlainText().toLatin1(); 116 | if (ui->hexSendCheckBox->checkState()){ 117 | send_data = uart_core_->hex_string_to_bytearray(send_data); 118 | } 119 | 120 | if (ui->checkBox_5->checkState()) { 121 | send_data += "\r\n"; 122 | } 123 | 124 | if (send_data.length() <= 0) { 125 | ui->recvBrowser->append(tr("input error")); 126 | return; 127 | } 128 | 129 | tx_quantity_ += send_data.length(); 130 | tx_display_->setText(tr("TX:")+QString::number(tx_quantity_,10)); 131 | uart_core_->send_data(send_data); 132 | } 133 | 134 | void serial::show_text(const QString &text){ 135 | ui->recvBrowser->insertPlainText(text+"\n"); 136 | } 137 | 138 | // 读取从自定义串口类获得的数据 139 | void serial::readSerialData() { 140 | //ui->recvTextEdit->moveCursor(QTextCursor::End); 141 | qDebug() << uart_core_->get_data_buffer_content().length(); 142 | qDebug() << uart_core_->get_data_buffer_content(); 143 | if(ui->hexRecvCheckBox->checkState()){ 144 | ui->recvBrowser->append(uart_core_->get_data_buffer_content().toHex()); 145 | }else{ 146 | ui->recvBrowser->append(uart_core_->get_data_buffer_content()); 147 | } 148 | rx_quantity_ += uart_core_->get_data_buffer_content().length(); 149 | rx_display_->setText(tr("RX")+": "+QString::number(rx_quantity_,10)); 150 | //ui->recvBrowser->moveCursor(QTextCursor::End); // 在末尾移动光标一格 151 | 152 | uart_core_->clear_data_buffer_content(); 153 | } 154 | 155 | void serial::on_clearTextButton_clicked(){ 156 | ui->recvBrowser->clear(); 157 | ui->recvBrowser->moveCursor(QTextCursor::Start); 158 | ui->sendTextEdit->clear(); 159 | } 160 | 161 | void serial::on_actionExit_triggered(){ 162 | QApplication* app = qApp; 163 | app->exit(0); 164 | } 165 | 166 | void serial::on_openPortButton_3_clicked(){ 167 | setting param; 168 | param.find_available_serial_ports_and_add(uart_core_); 169 | param.exec(); 170 | 171 | if(!uart_core_->serial_name_.isEmpty()){ 172 | ui->portComboBox->setCurrentText(uart_core_->serial_name_); 173 | } 174 | 175 | if(uart_core_->baud_rate_ > 0){ 176 | ui->baudComboBox->setCurrentText(QString::number(uart_core_->baud_rate_)) ; 177 | } 178 | } 179 | 180 | void serial::on_portComboBox_activated(const QString &arg1){ 181 | uart_core_->serial_name_ = arg1; 182 | } 183 | -------------------------------------------------------------------------------- /uart_setting.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | setting 4 | 5 | 6 | 7 | 0 8 | 0 9 | 508 10 | 585 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 110 20 | 510 21 | 281 22 | 71 23 | 24 | 25 | 26 | Qt::Horizontal 27 | 28 | 29 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 30 | 31 | 32 | 33 | 34 | 35 | 220 36 | 120 37 | 271 38 | 57 39 | 40 | 41 | 42 | 43 | 0 44 | 0 45 | 46 | 47 | 48 | 49 | 4800 50 | 51 | 52 | 53 | 54 | 9600 55 | 56 | 57 | 58 | 59 | 19200 60 | 61 | 62 | 63 | 64 | 38400 65 | 66 | 67 | 68 | 69 | 57600 70 | 71 | 72 | 73 | 74 | 115200 75 | 76 | 77 | 78 | 79 | 128000 80 | 81 | 82 | 83 | 84 | 256000 85 | 86 | 87 | 88 | 89 | 921600 90 | 91 | 92 | 93 | 94 | 1500000 95 | 96 | 97 | 98 | 99 | 100 | 101 | 220 102 | 190 103 | 271 104 | 57 105 | 106 | 107 | 108 | 109 | 0 110 | 0 111 | 112 | 113 | 114 | 115 | 5 116 | 117 | 118 | 119 | 120 | 6 121 | 122 | 123 | 124 | 125 | 7 126 | 127 | 128 | 129 | 130 | 8 131 | 132 | 133 | 134 | 135 | 136 | 137 | 220 138 | 270 139 | 271 140 | 57 141 | 142 | 143 | 144 | 145 | 0 146 | 0 147 | 148 | 149 | 150 | 151 | 1 152 | 153 | 154 | 155 | 156 | 2 157 | 158 | 159 | 160 | 161 | 3 162 | 163 | 164 | 165 | 166 | 167 | 168 | 220 169 | 340 170 | 271 171 | 57 172 | 173 | 174 | 175 | 176 | 0 177 | 0 178 | 179 | 180 | 181 | 182 | 0 183 | 184 | 185 | 186 | 187 | 2 188 | 189 | 190 | 191 | 192 | 3 193 | 194 | 195 | 196 | 197 | 4 198 | 199 | 200 | 201 | 202 | 5 203 | 204 | 205 | 206 | 207 | 208 | 209 | 220 210 | 410 211 | 271 212 | 57 213 | 214 | 215 | 216 | 217 | 0 218 | 0 219 | 220 | 221 | 222 | 223 | 0 224 | 225 | 226 | 227 | 228 | 1 229 | 230 | 231 | 232 | 233 | 2 234 | 235 | 236 | 237 | 238 | 239 | 240 | 220 241 | 50 242 | 271 243 | 57 244 | 245 | 246 | 247 | 248 | 0 249 | 0 250 | 251 | 252 | 253 | 254 | 255 | 256 | 30 257 | 60 258 | 135 259 | 30 260 | 261 | 262 | 263 | Port 264 | 265 | 266 | 267 | 268 | 269 | 30 270 | 130 271 | 135 272 | 30 273 | 274 | 275 | 276 | Band Rate 277 | 278 | 279 | 280 | 281 | 282 | 30 283 | 200 284 | 135 285 | 30 286 | 287 | 288 | 289 | Data Bits 290 | 291 | 292 | 293 | 294 | 295 | 30 296 | 280 297 | 135 298 | 30 299 | 300 | 301 | 302 | Stop Bits 303 | 304 | 305 | 306 | 307 | 308 | 30 309 | 360 310 | 181 311 | 30 312 | 313 | 314 | 315 | Parity Bits 316 | 317 | 318 | 319 | 320 | 321 | 30 322 | 430 323 | 181 324 | 30 325 | 326 | 327 | 328 | Flow Control 329 | 330 | 331 | 332 | 333 | 334 | 335 | buttonBox 336 | accepted() 337 | setting 338 | accept() 339 | 340 | 341 | 248 342 | 254 343 | 344 | 345 | 157 346 | 274 347 | 348 | 349 | 350 | 351 | buttonBox 352 | rejected() 353 | setting 354 | reject() 355 | 356 | 357 | 316 358 | 260 359 | 360 | 361 | 286 362 | 274 363 | 364 | 365 | 366 | 367 | 368 | -------------------------------------------------------------------------------- /MySerial_zh_CN.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Uartcore 6 | 7 | 8 | Error: 9 | Error: 10 | 错误: 11 | 12 | 13 | 14 | Illegal hex string: 15 | 非法的16进制字符串: 16 | 17 | 18 | 19 | serial 20 | 21 | 22 | serial 23 | Title 24 | 串口调试工具 25 | 26 | 27 | 28 | Refresh 29 | 刷新设备 30 | 31 | 32 | 33 | 4800 34 | 35 | 36 | 37 | 38 | 9600 39 | 40 | 41 | 42 | 43 | 19200 44 | 45 | 46 | 47 | 48 | 38400 49 | 50 | 51 | 52 | 53 | 57600 54 | 55 | 56 | 57 | 58 | 115200 59 | 60 | 61 | 62 | 63 | 128000 64 | 65 | 66 | 67 | 68 | 256000 69 | 70 | 71 | 72 | 73 | 921600 74 | 75 | 76 | 77 | 78 | 1500000 79 | 80 | 81 | 82 | BaudRate 83 | 波特率 84 | 85 | 86 | 87 | More Serial Port Setting 88 | 更多串口设置 89 | 90 | 91 | 92 | 93 | Open Port 94 | Open 95 | 打开串口 96 | 97 | 98 | 99 | Clear Text 100 | 清除显示 101 | 102 | 103 | 104 | Send 105 | 发送 106 | 107 | 108 | 109 | Timer 110 | 定时发送 111 | 112 | 113 | 114 | Save Files 115 | 保存文件 116 | 117 | 118 | 119 | Send with LFCR 120 | 发送以LFCR结尾 121 | 122 | 123 | 124 | About 125 | 关于 126 | 127 | 128 | 129 | Menu 130 | 菜单 131 | 132 | 133 | 134 | Preferences 135 | 首选项 136 | 137 | 138 | 139 | Exit 140 | 退出 141 | 142 | 143 | 144 | Licences 145 | 许可证 146 | 147 | 148 | 149 | Distributers 150 | 贡献者 151 | 152 | 153 | 154 | Hex Send 155 | Hex发送 156 | 十六进制发送 157 | 158 | 159 | 160 | Hex Show 161 | Hex显示 162 | 十六进制显示 163 | 164 | 165 | 166 | 1000 167 | 168 | 169 | 170 | 171 | ms 172 | ms/次 173 | ms 174 | 175 | 176 | 177 | 178 | RX 179 | 接收 180 | 181 | 182 | 183 | TX 184 | 发送 185 | 186 | 187 | 188 | Serial Port not connect 189 | 串口未连接 190 | 191 | 192 | 193 | Close Port 194 | 关闭串口 195 | 196 | 197 | 198 | Port already opended 199 | 串口已打开 200 | 201 | 202 | 203 | Port already Closed 204 | 串口已关闭 205 | 206 | 207 | 208 | input error 209 | 输入错误 210 | 211 | 212 | 213 | TX: 214 | 215 | 216 | 217 | No Input 218 | 串口已关闭 219 | 220 | 221 | Please Send Input Commands 222 | 请输入发送指令 223 | 224 | 225 | 没有可以使用的串口 226 | 没有可以使用的串口 227 | 228 | 229 | 230 | No Available Serial Port 231 | 没有可以使用的串口 232 | 233 | 234 | 235 | setting 236 | 237 | 238 | Dialog 239 | 对话框 240 | 241 | 242 | 243 | 4800 244 | 4800 245 | 246 | 247 | 248 | 9600 249 | 9600 250 | 251 | 252 | 253 | 19200 254 | 19200 255 | 256 | 257 | 258 | 38400 259 | 38400 260 | 261 | 262 | 263 | 57600 264 | 57600 265 | 266 | 267 | 268 | 115200 269 | 115200 270 | 271 | 272 | 273 | 128000 274 | 128000 275 | 276 | 277 | 278 | 256000 279 | 256000 280 | 281 | 282 | 283 | 921600 284 | 921600 285 | 286 | 287 | 288 | 1500000 289 | 1500000 290 | 291 | 292 | 293 | 294 | 5 295 | 5 296 | 297 | 298 | 299 | 6 300 | 6 301 | 302 | 303 | 304 | 7 305 | 7 306 | 307 | 308 | 309 | 8 310 | 8 311 | 312 | 313 | 314 | 315 | 1 316 | 1 317 | 318 | 319 | 320 | 321 | 322 | 2 323 | 2 324 | 325 | 326 | 327 | 328 | 3 329 | 3 330 | 331 | 332 | 333 | 334 | 0 335 | 0 336 | 337 | 338 | 339 | 4 340 | 4 341 | 342 | 343 | 344 | Port 345 | 串口 346 | 347 | 348 | 349 | Band Rate 350 | 波特率 351 | 352 | 353 | 354 | Data Bits 355 | 数据位 356 | 357 | 358 | 359 | Stop Bits 360 | 停止位 361 | 362 | 363 | 364 | Parity Bits 365 | 校验位 366 | 367 | 368 | 369 | Flow Control 370 | 流控 371 | 372 | 373 | 374 | -------------------------------------------------------------------------------- /uart_interface.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | serial 4 | 5 | 6 | 7 | 0 8 | 0 9 | 2056 10 | 1241 11 | 12 | 13 | 14 | 15 | 0 16 | 0 17 | 18 | 19 | 20 | serial 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 0 29 | 0 30 | 31 | 32 | 33 | 34 | 440 35 | 160 36 | 37 | 38 | 39 | 40 | 440 41 | 160 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 0 53 | 0 54 | 55 | 56 | 57 | 58 | 4800 59 | 60 | 61 | 62 | 63 | 9600 64 | 65 | 66 | 67 | 68 | 19200 69 | 70 | 71 | 72 | 73 | 38400 74 | 75 | 76 | 77 | 78 | 57600 79 | 80 | 81 | 82 | 83 | 115200 84 | 85 | 86 | 87 | 88 | 128000 89 | 90 | 91 | 92 | 93 | 256000 94 | 95 | 96 | 97 | 98 | 921600 99 | 100 | 101 | 102 | 103 | 1500000 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 0 113 | 0 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 0 123 | 0 124 | 125 | 126 | 127 | Refresh 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 0 136 | 0 137 | 138 | 139 | 140 | More Serial Port Setting 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | true 151 | 152 | 153 | 154 | 0 155 | 0 156 | 157 | 158 | 159 | 160 | 200 161 | 160 162 | 163 | 164 | 165 | 166 | 200 167 | 160 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 0 179 | 0 180 | 181 | 182 | 183 | Open Port 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 0 192 | 0 193 | 194 | 195 | 196 | Clear Text 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 0 220 | 0 221 | 222 | 223 | 224 | 225 | 0 226 | 160 227 | 228 | 229 | 230 | 231 | 16777215 232 | 160 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 0 244 | 0 245 | 246 | 247 | 248 | 249 | 0 250 | 0 251 | 252 | 253 | 254 | 255 | 16777215 256 | 16777215 257 | 258 | 259 | 260 | Send 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 0 269 | 0 270 | 271 | 272 | 273 | 274 | 0 275 | 0 276 | 277 | 278 | 279 | 280 | 16777215 281 | 16777215 282 | 283 | 284 | 285 | 286 | 微软雅黑 287 | 16 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | Hex Send 296 | 297 | 298 | 299 | 300 | 301 | 302 | Hex Show 303 | 304 | 305 | 306 | 307 | 308 | 309 | Timer 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 0 318 | 0 319 | 320 | 321 | 322 | 323 | 200 324 | 0 325 | 326 | 327 | 328 | 329 | 200 330 | 16777215 331 | 332 | 333 | 334 | 1000 335 | 336 | 337 | 338 | 339 | 340 | 341 | ms 342 | 343 | 344 | 345 | 346 | 347 | 348 | Save Files 349 | 350 | 351 | 352 | 353 | 354 | 355 | Send with LFCR 356 | 357 | 358 | 359 | 360 | 361 | 362 | Qt::Horizontal 363 | 364 | 365 | 366 | 634 367 | 20 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 0 381 | 0 382 | 2056 383 | 45 384 | 385 | 386 | 387 | 388 | About 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | Menu 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | Preferences 408 | 409 | 410 | 411 | 412 | Exit 413 | 414 | 415 | 416 | 417 | Licences 418 | 419 | 420 | 421 | 422 | Distributers 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | --------------------------------------------------------------------------------