UART串口接收和发送的重新理解

在UART串口中,数据的接收和发送都是通过串口硬件模块完成的。让我们分别讨论一下数据的接收和发送。

数据接收:

  1. 硬件接收缓冲区: UART串口硬件模块内部有一个接收缓冲区(Receive Buffer)。当有数据通过串口线进入芯片时,这些数据首先存储在硬件接收缓冲区中。

  2. 中断触发: 当接收缓冲区中有数据可用时,UART模块会生成一个接收中断(RXNE - Receive Not Empty),通知微控制器有数据可读。

  3. 中断服务程序: 在中断服务程序中,通过读取接收缓冲区的数据寄存器,将接收到的数据复制到指定的缓冲区中。这个缓冲区通常是在代码中定义的一个数组,如 rcvBuf

 

数据发送:

  1. 硬件发送缓冲区: UART串口硬件模块内部还有一个发送缓冲区(Transmit Buffer)。当CPU要发送数据时,将数据写入发送缓冲区。

  2. 中断触发: 当发送缓冲区中的数据被传输完毕时,UART模块会生成一个发送完成中断(TC - Transmission Complete)。

  3. 中断服务程序: 在中断服务程序中,可以做一些额外的处理,但通常不需要。关键是,当TC中断触发时,CPU可以继续往发送缓冲区写入新的数据,UART硬件会负责将数据发送出去。

总的来说,串口的数据接收和发送是通过串口硬件模块完成的,而中断服务程序则用于在数据接收或发送时执行一些额外的处理。

UART :

UART(Universal Asynchronous Receiver/Transmitter)是一种通用的串行通信协议,常用于在微控制器、单片机和计算机之间进行串口通信。 

  • 个人电脑: 在个人电脑上,UART 通过 USB to TTL 转接模块实现。USB to TTL 转接模块是一个串口适配器,将 USB 接口转换为串口(TTL)接口,使得个人电脑可以通过串口协议与其他设备通信。

  • 51 单片机: 在 51 单片机上,UART 通常通过芯片内部的串口模块实现。单片机上的串口模块允许你通过硬件引脚(比如 TX(发送)、RX(接收))与其他设备进行串行通信。

例子:

我现在有三个东西,个人电脑,usb to ttl,51单片机,那么个人电脑怎么传输数据到单片机,单片机又怎么传输数据给个人电脑呢?

  1. 连接: 首先,确保你的 USB to TTL 转接模块正确连接到个人电脑,并通过串口连接到 51 单片机的 UART 引脚(TX、RX)。

  2. 电脑串口助手: 在个人电脑上使用串口助手软件,比如 Tera Term、PuTTY 或者其他串口调试工具。打开软件,选择正确的串口号和波特率。

  3. 单片机串口初始化: 在 51 单片机的代码中,需要初始化串口,设置波特率等参数。这通常包括使用类似于 UART_Init() 的函数。

  4. 数据接收: 在 51 单片机的代码中,实现一个串口中断服务程序,以便在接收到数据时触发中断。在中断服务程序中,读取接收缓冲区的数据并进行相应的处理。

  5. 数据发送: 在串口助手软件中输入要发送的数据,点击发送按钮。这样,数据将通过 USB to TTL 转接模块传输到 51 单片机的串口引脚。

  6. 单片机数据处理: 在单片机中断服务程序中,接收到的数据可以被读取并进行处理。这可能包括将数据存储在缓冲区、执行特定的任务等。

确保你的串口助手软件和 51 单片机的串口设置匹配,包括波特率、数据位、停止位等。这样,你就能够通过串口从个人电脑发送数据到 51 单片机。

 

 

你可能感兴趣的:(单片机,嵌入式硬件)