当前位置: 首页 > news >正文

dw自己做网站有没有专门做名片的网站

dw自己做网站,有没有专门做名片的网站,高端网站建设与发展,产品设计培训机构哪家好本文由网友投稿。作者#xff1a;陈显达原文标题#xff1a;【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互原文链接#xff1a;https://www.cnblogs.com/1996-Chinese-Chen/p/16826558.html引言在第一章博客中#xff0c;我们讲了Arduino对E…本文由网友投稿。作者陈显达原文标题【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互原文链接https://www.cnblogs.com/1996-Chinese-Chen/p/16826558.html引言在第一章博客中我们讲了Arduino对Esp32的一个环境配置以及了解到了常用的一个总线通讯协议其中有SPI,IIC,UART等今天我为大家带来UART串口通讯和c#串口进行通讯的一个案例以及什么是中断中断的作用和实践话不多说让我们正式开始。UART在第一篇博客中我们讲了UART是需要一个接收一个发送的引脚总共两个分别是TXD(发送引脚),RXD(接收引脚)不管是什么类型的单片机串口引脚都是这两个可能有的是少了最后面的那个D但是都是一样的东西在ESP32的开发板上是有三对UART的引脚的也就是说板子上有三个串口可以供我们使用如下图Serial0对应的引脚为1和3Serial1对应的引脚为9和10Serial2对应的引脚为16和17但是在我们烧录的时候1和3是不能使用的因为我们通过USB将单片机连接到电脑上使用的串口引脚就是1和3所以我们可使用串口只有两个而Arduino IDE上面对应的Serial也有四个静态类分别是SerialSerial1和Serial2以及Serial3。虽然他的数量和我们ESP32的串口数量是一样但是只有第一个可以使用后面两个我们是无法使用的因为后面两个对应的引脚和我们ESP32的引脚是不相同的我们可以从下面第二个图看到Serial1Serial2的 PINS是和我们ESP32的引脚是对不上的所以我们在串口开发的时候是不使用这两个对于第一个Serial我们是可以使用的。我们如果需要使用ESP32的串口开发在ESP的开发包里官方给我们提供了一个HardwareSerial的一个串口库里面我们可以使用开发板上面的串口同时将引脚指定为我们引脚图上面的引脚。这个库的位置为我们Arduino IDE目录下的hardware/espressif/esp32/cores/esp32可以找到这个库这个文件夹下包含了一些ESP32的官方库使用这个HardwareSerial.h文件我们可以实现使用ESP32开发板上面的串口进行开发接下来我们在代码中去了解他如何使用。编码在下面的代码中我们开始了一个简单的一个串口通讯在代码第一行是和c语言一样引入我们需要的库文件然后在第二行定义了HardwareSerial这个类的一个MySerial1对象里面的构造函数的值是1代表着我们将使用第一个串口在下面的setup里面我们开始启动了MySerial1这个串口对象启动的波特率是9600数据长度是8校验位是NONE停止位是1以及串口的rx的引脚是16tx的引脚为17。在下一行代码我们传入了一个我们下方定义的receiveEvent的一个方法这个方法用来接收串口接收数据的一个回调将我们这个方法指针传入进去在串口接收到数据之后会进入到我们这个方法中。最后一行代码我们是启用了第0个串口波特率是9600。可能上面的代码有朋友就有疑惑了明明16和17在引脚图中定义的串口是2为什么这里定义的是1呢实际上这个我们可以自己修改这个串口的定义和引脚这个构造函数传入的参数取值范围为012对应的是我们开发板上的三个UART串口在begin哪里传入的引脚和这个012是没有任何关系的但是这个传入的引脚必须是开发板上三个UART串口之一所以我们也可以定义为MySerial2.begin(9600,SERIAL_8N1,10,9);这里的012仅对应有三对串口不指定对应的引脚在begin方法我们指定对应的串口的引脚。在下面的接收到串口消息的回调中我们第一行代码调用了available这个方法这个方法返回的是一个int参数当然了我们这块也可以写available()0也是可以的这个方法是从串口缓存中读取我们接收到的数据长度这个条件成立说明我们是有接收到数据然后在里面我们开始去读取数据。在所有的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通讯的WireSD卡的一个类以及用于网络连接的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 new byte[1024];var resserial.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#程序电机开启串口随后发送数据可以接收到单片机的反馈。结语串口通讯是物联网中必不可少的一种通讯方式通常情况下都是RX接TXTX接RX除非是模块厂商的规定否则都是这样接线在后面的课程中我会依次对IIC以及PWM,还有SPI以及中断单独做一个讲解欢迎大家关注学习和探讨我会将我所知道的都会分享同时后面也会有STM32系列的教程。如果有感兴趣的朋友可以加QQ群一起来讨论822084696。
http://www.pierceye.com/news/672347/

相关文章:

  • 福田住房和建设局网站官网做自己点击网站
  • 临沂市建设局网站简介佛山建网站
  • 哪种类型的网站比较难做阿里云宝塔安装wordpress
  • 购物网站起名网站建设皿金手指排名
  • 河北省住房和城市建设厅网站怎么做cpa网站
  • 网站备案 取名资讯通不过软文投放平台有哪些?
  • 民治做网站多少钱好看的企业网站首页
  • 腾讯域名怎么建设网站客户管理系统免费
  • 承德网站建设报价网站建设中企动力最佳a5
  • 图书馆第一代网站建设海口会计报名网站
  • 网站设计师简介中国工厂网站官方网站
  • 广州移动 网站建设十大职业资格培训机构
  • 网站建设维护协议书网站开发程序用什么好
  • 零基础做网站教程天猫商城商品来源
  • 广州知名网站建设公司教育机构培训
  • 做游戏解说上传在什么网站好企业网站定制
  • 用iis浏览网站南宁网站seo大概多少钱
  • 如何用手机网站做淘宝客wordpress 免费 旅游
  • 青岛网站建设网站制作seo顾问服务福建
  • phpcms网站织梦 网站栏目管理 很慢
  • 金融网站 改版方案seo推广优化培训
  • 博物馆设计网站推荐网站布局有哪些常见的
  • 外贸网站建设980ps软件需要付费吗
  • 网站开发后的经验总结北新泾街道网站建设
  • 深圳市南山区住房和建设局网站国内知名网站建设伺
  • 企业网站建设制作的域名费用做的网站怎么上传
  • c++可视化界面设计搜索引擎优化自然排名的区别
  • 网站开发工作网络营销的网站分类有
  • 校园网上零售网站建设方案网站建设中页面模板
  • 网站如何报备外贸网站设计风格