36 lines
1.7 KiB
Plaintext
36 lines
1.7 KiB
Plaintext
---
|
||
id: 30001
|
||
title: 串口
|
||
---
|
||
|
||
import useBaseUrl from "@docusaurus/useBaseUrl";
|
||
import Tag from "@site/src/components/Tag.js";
|
||
import Highlight from '@site/src/components/Highlight.js';
|
||
|
||
### 前言
|
||
|
||
串口使用一个称为串行通信协议的协议来管理数据传输。串行通信协议在数据传输期间控制数据流,包括起始位、数据位、波特率、校验位和停止位等。
|
||
下面每个名称做一个简单的解释。
|
||
|
||
``波特率``是指串口通信中每秒传输的二进制位数
|
||
|
||
``起始位``是1位时间、值为0的位,所以对于正逻辑的TTL电平,起始位是低电平;起始位代表着数据传输开始。
|
||
|
||
``数据位``通常可能为1位、1.5位、2位时间。
|
||
|
||
``校验位``是1位时间,根据校验方式确定验证值,比如奇校验时,计算数据位中的值为1的个数,如果是奇数,则为1,否则应为0
|
||
|
||
``停止位``通常可能为1位、1.5位、2位时间。停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。停止位代表着数据传输结束。
|
||
|
||
线路路空闲或者数据传输结束,对于正逻辑的TTL电平,线路总是1。对于负逻辑(如RS-232电平)则相反。
|
||
|
||
|
||
单看文字很难理解具体含义,所以我们看图说话,下面这张串口示波器图清晰的表现出二进制的传输原理
|
||
|
||
<img src={require("@site/static/img/docs/串口1.png").default} />
|
||
|
||
|
||
如上图,可以看出2进制是 起始``1``、数据(右到左)``01010101``、停止``0`` ,那么解析出来的数据就是``0x55``
|
||
|
||
看到这里,相信大家都对串口知识有了一定的理解,这些基础知识对于c#工程师看似没有必要,但可以让你的实际调试开发工作更加得心应手
|