在所有的Serial都是及程序Arduino的一个Stream的一个基础类,这个类提供了一些我们对数据处理的一个方法,所以在下面的代码中,我们将读取的数据转为字符串,然后将代码延迟暂停了一秒,随后,我们使用我们的串口对象,将接收到的数据写入缓冲区,缓冲区会把我们写入的数据,在发送出去,即将println里面传入的参数发送到我们的串口发送方,谁发的数据,谁就会收到"i am receive!!"+str 。
#include <HardwareSerial.h>HardwareSerial MySerial1(1);void setup() {// put your setup code here, to run once:MySerial1.begin(9600,SERIAL_8N1,16,17);MySerial1.onReceive(receiveEvent);Serial.begin(9600);}void loop() {}void receiveEvent(){if(MySerial1.available()){String str= MySerial1.readString();delay(1000);MySerial1.println("i am receive!!"+str);}delay(1000);}
Stream包括了以下方法,其中继承Stream的分别为串口,IIC通讯的Wire,SD卡的一个类,以及用于网络连接的Ethernet类,都可以使用这些方法用来对数据进行操作 。
文章插图
c#编码C#方面的代码则简单很多,界面一个开启串口的按钮,一个发送数据的按钮和文本框,以及用来接收数据显示的文本框 。
在代码中我们开启了串口,指定了打开的是哪一个串口,一些属性是需要和ESP32那边设置一样的,在上面我们设置波特率为9600,数据为是8,停止位是1,校验位是NONE,所以在c#这边我们也需要这样设置,不过校验位默认是NONE的,所以此处我们没有设置,然后开启串口,注册了一个接收到数据的一个回调,然后定义一个1024的字节数组,从串口读取数据,返回读取的数据长度,然后在对刚才定义的1024字节数组进行截取,然后通过UTF-8的格式转为字符串,然后显示到界面上的富文本框中,在发送按钮事件中,我们从输入框读取数据转为字节数组,然后将数据写入到串口中去即可 。
文章插图
public partial class Form1 : Form{private SerialPort serialPort = new SerialPort("COM6");public Form1(){InitializeComponent();}private async void button1_Click(object sender, EventArgs e){serialPort.BaudRate = 9600;serialPort.StopBits = StopBits.One;serialPort.DataBits = 8;serialPort.Open();serialPort.DataReceived += (a, b) => {var serial = a as SerialPort;var data = https://www.huyubaike.com/biancheng/new byte[1024];var res=serial.Read(data,0, data.Length);data = data[..res];string st = Encoding.UTF8.GetString(data);BeginInvoke(() => { richTextBox1.Text += st; });};}private void button2_Click(object sender, EventArgs e){var str = Encoding.UTF8.GetBytes(textBox1.Text);serialPort.Write(str, 0, str.Length);}}
接线图在此处的实例,我们需要准备一个USB转TTL的模块,四根母对母的杜邦线,在程序烧录之后,我们需要将使用杜邦线让USB转TTL模块和单片机进行连接,VCC或者5V接单片机的5V引脚,USB转TTL的GND和单片机的GND相接,然后USB转TTL的rxd引脚和单片机17引脚相接,txd引脚和单片机的16引脚相接,如下图所示接线,5v不可和gnd接反,否则可能会烧坏模块,确认接线无误后,将USB转TTL模块插入电脑中,然后代码中运行c#程序,电机开启串口,随后发送数据,可以接收到单片机的反馈 。文章插图
文章插图
文章插图
经验总结扩展阅读
- 在哪个星球上能看到太阳西升东落
- 菜粉蝶竟是我自己是什么梗什么意思 为什么白纸可以吸引菜粉蝶
- 一支核酸检测病毒采样管多少钱 怎样看待自费核酸检测
- 2023年农历八月十四宜修理仓库吗 2023年9月28日修理仓库好吗
- 温馨的女生签名带给自己温暖 女孩子的好听个性签名
- 艾草洗头后还要用洗发水洗吗?
- 2023年9月28日做生意黄道吉日 2023年农历八月十四宜做生意吗
- 芭思蔻是哪国产的?
- 电视剧百合剧情介绍?
- 百合小宝徎建明是什么电视剧?