c++调用CSerial 库函数进行串口发送

毕设做的东西要用到这个,请学弟帮忙收集了下,自己也做个整理.

完整实验项目下载:
https://download.csdn.net/download/a897180673/10310065

用到的硬件:
1.ch340 土豪金模块
2.arduino

首先是连接:
1.ch340一端插在电脑上,一端通过杜邦线和arduino相连
ch340和arduino的连接如下:

一共4个引脚
5v—5v
gng—gnd
txd—rxd
rxd—txd

这里写图片描述

最终的连接效果 连接如下:
(图片传上去倒过来了,还改不过来)
这里写图片描述

硬件搭建ok后开始编写代码
arduino 13号引脚是和板载的LED相连接的,只要让13号引脚输出高电平,LED就会亮,反之就会熄灭用
用c++向arduino 的串口发送a,arduino 就把13号引脚输出高,发送b,arduino就把13号引脚输出低

下面是代码,首先是arduino的

void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);

}

void loop() {
char x;
if(Serial.available())
{
  x=Serial.read();
  if(x=='a'){
    digitalWrite(13,HIGH);
  }
  if(x=='b'){
    digitalWrite(13,LOW);
  } 
}
}

arduino不停的检测串口,如果ch340发送数据,arduino就会收到,并进行相应的亮灯 和 灭灯的操作

下面是重点了 也就是c++操作ch340串口,并进行串口的数据发送

这里要引入serial的头文件
具体的可以去上面下载完整的工程

工程结构:

这里写图片描述

下面主要看下main.cpp

#include<iostream>
#include"Serial.h"
#include <TCHAR.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#include <sstream>

CSerial serial;

void  serialInit() {
    serial.OpenSerialPort(_T("COM9:"), 9600, 8, 1);
}
void Send(char x) {
    serial.SendData(&x,1);
}
int main(int argc, char** argv) {
    serialInit();
    char a;
    while (1) {
        cin >> a;
        Send(a);
    }
    return 0;
}

主要就是定义一个串口类 ,然后调用send方法,程序运行后输入a,按回车.这个时候就可以发现arduino收到a,并且板载led亮了,带L标志的小灯

这里写图片描述

在发送 b,带L标志的小灯就灭了

这里写图片描述

猜你喜欢

转载自blog.csdn.net/a897180673/article/details/79706031
今日推荐