关于STM32串口通信时数据读取的一些疑问
下图是USART的数据存储和转移部分的框图,有一些疑问一直困扰着我:1、当我们读取数据的时候,我们读取的是RDR(接受数据寄存器)中的数据吗?如果是,那这些传来的数据是自...
下图是USART的数据存储和转移部分的框图,有一些疑问一直困扰着我:1、当我们读取数据的时候,我们读取的是RDR(接受数据寄存器)中的数据吗?如果是,那这些传来的数据是自动通过接收移位寄存器传到RDR的吗?2、当我们发送数据时,是不是只要将数据发送到TDR(发送数据寄存器)就可以了?剩下的单片机会自动将数据通过发送移位寄存器发送出去到其他设备;3、当我们接收数据时,是不是RDR的数据都被读取完之后,RXNE才会被置0;4、接收字符串数据时 ch = USART_ReceiveData(USART1); 是不是每次只能读取一个字符?如果我们需要一次性读取字符串中的所有字符,应该怎么办?我们一次接收的字符串的长度是否有限制?5、我看书上提到了“数据缓冲区”,这是指的什么地方?是数据寄存器吗?最好可以使用12345对应回复,非常感谢!!!
展开
1个回答
展开全部
追问
追答
1、其实就是这样实现的,所谓的“缓冲区”就是指的程序中定义的数组存储单元。
2、不需要,配置好串口后,直接fputc()就能发数据。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询