Skip to content

nRF52832 片内集成了一个 UART 外设,其主要特性如下:

  • 全双工。
  • 自动的流控。
  • 奇偶校验并自动产生校验位。
  • 1 位停止位。 nRF52832 的 UART 通过 TXD 和 RXD 寄存器发送和接收数据,UART 的原理框图如下 图所示: sdf UART 共有 4 个引脚配置寄存器,通过这 4 个寄存器可以将 UART的4个信号映射到任何一个物理引脚。UART的发送通过STARTTX任务启动和停止, 发送成功后,会产生 TXDRDY 事件。UART 的接收通过 STARTRX 和 STOPRX 任务启动和 停止,当数据由硬件 FIFO 提取到 RXD 寄存器时,产生 RXDRDY 事件。

UART 发送 ​

UART 通过触发 STARTTX 任务(即向任务寄存器 STARTTX 中写入 1)启动发送序列, 数据通过写入到 TXD 寄存器发送,每次发送一个字节,之后 TXD 中的数据逐个传送到物 理线路。当 TXD 中的数据传送完成之后,UART 产生 TXDRDY 事件,这时可以向 TXD 寄 存器写入下一个要发送的数据 如果要停止 UART 发送,触发 STOPTX 任务(即向任务寄存器 STOPTX 中写入 1)即可,触发后,UART 发送会立即停止。 一旦使能了串口硬件流控,向 TXD 中写入数据后,如果 CTS 信号有效(CTS 为低电平, 允许发送),TXD 中的数据会被传送到物理线路,否则,发送会被挂起直到 CTS 信号有效

UART 接收 ​

UART 通过触发 STARTRX 任务(即向任务寄存器 STARTRX 中写入 1)启动接收序列, UART 接收有 6 个字节的硬件 FIFO,在接收的数据被覆盖之前可以存储 6 个字节。 UART 接收的数据通过 RXD 寄存器读出,当 RXD 寄存器中的数据被读出后,FIFO 中 的数据会移动到 RXD 寄存器。

Released under the GPL License.