毕设做的东西要用到这个,请学弟帮忙收集了下,自己也做个整理.
完整实验项目下载:
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标志的小灯就灭了