- 博客(5)
- 收藏
- 关注
原创 STM32串口通讯数据丢失原因分析及解决办法
在进行串口通讯实验时,一时不仔细可能会发现通讯不正常,数据丢失的现象,包括丢失第一个字符,或只收到最后一个字符等等,本文接下来将就这类问题展开讨论。首先是通过MCU向上位机发送数据:若程序如下图所示,直接发送数据,由于数据缓冲区(TDR)向移位寄存器发送数据是并行发送,时间较快,而从移位寄存器向外传输数据是串行输出,耗时较长,如此可能导致数据丢失多个,或只接收到最后一个,因为后面并行传输的快,还没等数据发送完成,下一个数据就覆盖住了上一个数据。如此,有两种解决办法;一,添加发送...
2022-01-10 15:05:27
16550
原创 C/C++中字节,字,数据帧,数据包的区别与联系
数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题 。 数据帧Frame,数据链路层的协议数据单元(protocol data unit)。数据链路层的主要职责是控制相邻系统之间的物理链路,它在传送“比
2022-01-05 18:00:55
1761
原创 STM32串口通讯(接收完成一整个数据帧再将数据发送出去)
STM32串口通信可以分为查询,中断,DMA三种方式进行通讯,本文主要就中断的方式进行讲解。采用中断的方式进行通讯时,可以使能接受非空中断(RXNE),当接收到一个数据时就产生一个中断,将接收到的数据通过移位寄存器移位到RDR中,此时我们可以直接将接收到的数据发送出去,则完成了一个字符的通讯,以后每次接收到一个数据就发送一个数据出去,如此便实现了接收到什么数据便发送什么数据的功能。而本文将要讨论先将其他设备发送来的数据全部接收完成,再将一整帧的数据发送出去的通讯方法。(串口通讯原理图如下)方法一
2021-12-30 10:54:15
10272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人