本次我们要探讨的是TTL串口,它仅需2根线便可完成两个设备的双向通信。
两方通过在数据线上发送固定频率的高低电平代表1和0来进行通信。
此外,双方共地来确保0电势的相同来保证对高低电平判断的正确。
我们在使用中,TX(A发送io口)连接RX(B接收io口),同样,B的TX连接A的RX。
接下来我们来看一看配置部分。这里只展示串口部分的配置。
我们可以在Connectivity下找到USART(通用同步(异步)通信)
要使用TTL 串口我们需要改为异步模式(Asynchronous)
下方基础配置中的Baud Rate(波特率)是指每秒传输码元数量,也就是每秒的高低电平信号。
而在实际通信中,每传递一字节信息(8bit),还需要起始位和停止位,共10bit,也就是说,我们115200的波特率下,每秒传递11520个字节。双方的波特率在通信时要保持一致。
下方的字节长度,校验位,停止位,我们平常保持默认即可。
保存并生成代码,我们可以发现,如下函数帮我们初始化了串口2。
接下来我们就可以通过如下函数来发送数据了。
同样,通过如下函数来接收数据。
上面我们提到的只是轮询模式下的串口收发,我们在发送或接受数据时是阻塞时的,无法在进行其他任务的同时来处理数据,之后我们会介绍中断模式的非阻塞式发送以及原理。