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

Arduino入门教程​​​​​​​:4、打印字符到电脑

飞书文档https://x509p6c8to.feishu.cn/docx/TBuSdqVU9oBlDTx4MBbcI1t3nLh

应用场景:

看Arduino板卡的运行状态

与电脑上位机软件通信、与Android工控机通讯

串口模块:以太网、WiFi、蓝牙、Zigbee、Lora等串口模块

什么是串口?

串行通讯端口,简称串口,也称COM口,串行接口的数据是通过一条线一位位地顺序传送。

并行接口,简称并口,是指8位数据同时通过8条并行线进行传送。

串口形容一下就是一条车道,而并口就是有8个车道同一时刻能传送8位(一个字节)数据。但是并不是并口快,由于8位通道之间的互相干扰。传输受速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。

什么是串口波特率?

波特率(bandrate),指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制位。比如每秒钟可以传输9600个二进制(传输一个二进制位需要的时间是1/9600秒,也就是104us),波特率就是9600。

串口的通信波特率不能随意设定,而应该再一些值中去选择。一般常见的波特率是9600或者115200(低端的单片机如51常用9600,高端的单片机和嵌入式SOC一般用115200)。

数据位:

1010 1010 ->       0xaa         ->170

                       10*16+10

也就是说我们可以通过控制引脚按上面的高低电平,每104us改变一次,就可以完成一个字节的传输。

但是芯片已经帮我们做好了这些操作,我们要做的只是配置好波特率,然后填写数据即可。

接线图:

参考代码:

//引入头文件
#include <Arduino.h>uint8_t temp_data;void setup() {Serial.begin(9600);// Serial.begin(115200);Serial.print("setup\n");
}void loop() {delay(1000);Serial.print("loop\n");//判断串口是否可用while(Serial.available()) {//读取接收到的数据temp_data = Serial.read();if(temp_data == '$') {Serial.printf("get data %d\n",temp_data);}}
}/*
如果设置Serial.begin(115200);
则需要在platformio.ini中添加
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
*///可以尝试,使用电脑控制LED灯

相关文章:

  • python中的模块化编程:日期模块、math算术模块、random模块
  • 国学IP行业实战洞察:聚焦创客匠人,解锁创始人IP与知识变现新路径
  • TDengine 如何从 2.x 迁移到 3.0
  • 用bilibili一个讲座视频,生成一本科普书籍
  • 苍穹外卖-day09
  • 湖北理元理律师事务所债务优化实务:平衡还款与生活的法律路径
  • (下)通用智能体与机器人Transformer:Gato和RT-1技术解析及与LLM Transformer的异同
  • uni-app项目实战笔记10--设置页面全局渐变线性渐变背景色
  • 上位机开发中的设计模式(3):装饰器模式
  • Flutter动画与交互:打造流畅用户体验的完整指南
  • QT集成Boost库
  • LeetCode - 34. 在排序数组中查找元素的第一个和最后一个位置
  • 【DSP笔记 · 第4章】算法的奇迹:快速傅里叶变换(FFT)如何改变世界
  • 理解C++中传引用和传值的区别
  • 【leetcode】169. 多数元素
  • C# WinForms 实现打印监听组件
  • 使用 Flutter 在 Windows 平台开发 Android 应用
  • 人工智能学习28-BP过拟合
  • 创客匠人视角:知识IP变现的主流模式与创新路径
  • 解决Spark4.0.0依赖问题
  • 开发微信微网站建设/seo优化工具推荐
  • 网站建设服务目标/电商网站平台
  • 做理财网站需要办理icp证吗/网站制作免费
  • 新型城镇化建设网站/怎么建个网站
  • 高清免费爱做网站/seo基础教程使用
  • 广告营销号码是干嘛的/北京网站优化步