三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互( 二 )


【三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互】#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类,都可以使用这些方法用来对数据进行操作 。

三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图
c#编码C#方面的代码则简单很多,界面一个开启串口的按钮 , 一个发送数据的按钮和文本框,以及用来接收数据显示的文本框 。
在代码中我们开启了串口 , 指定了打开的是哪一个串口,一些属性是需要和ESP32那边设置一样的 , 在上面我们设置波特率为9600,数据为是8,停止位是1,校验位是NONE,所以在c#这边我们也需要这样设置,不过校验位默认是NONE的 , 所以此处我们没有设置 , 然后开启串口,注册了一个接收到数据的一个回调,然后定义一个1024的字节数组,从串口读取数据,返回读取的数据长度,然后在对刚才定义的1024字节数组进行截取,然后通过UTF-8的格式转为字符串,然后显示到界面上的富文本框中,在发送按钮事件中,我们从输入框读取数据转为字节数组,然后将数据写入到串口中去即可 。
三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图
      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#程序,电机开启串口,随后发送数据,可以接收到单片机的反馈 。
三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图

三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图

三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图

三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图
结语串口通讯是物联网中,必不可少的一种通讯方式,通常情况下都是RX接TX,TX接RX , 除非是模块厂商的规定,否则都是这样接线,在后面的课程中,我会依次对IIC , 以及PWM,还有SPI,以及中断单独做一个讲解,欢迎大家关注,学习和探讨 , 我会将我所知道的都会分享,同时,后面也会有STM32系列的教程 。如果有感兴趣的朋友,可以加QQ群一起来讨论822084696 。
三 【单片机入门】应用层软件开发的单片机学习之路-----UART串口通讯和c#交互

文章插图

推荐阅读