金牌会员
- 积分
- 1765
- 金钱
- 1765
- 注册时间
- 2015-9-21
- 在线时间
- 544 小时
|
UART模块可用于控制UART。UART模块有三种模式:
不带硬件流控制的 UART
具有硬件流控制的UART
具有低功耗模式的UART将使用CTS线路上的硬件流控制和GPIOTE来关闭nRF芯片中的UART模块,从而使nRF节省功耗。
低功耗模式将使用 RTS/CTS 流量控制,同时使用 CTS 线路进入低功耗模式。只要来自远程端的 CTS 信号为高电平,UART 外设就会关闭,当 CTS 变为低电平(活动)时,UART 外设将被启用。
异步性质
发生EVENT_RXDRDY中断时,UART 模块将从 RXD 寄存器接收字节。该字节将被放入 RX FIFO 中,并可由应用程序使用 app_uart_get 获取。接收并放置在RX FIFO中的第一个字节将触发APP_UART_DATA_READY事件。
app_uart_put会将提供的字节放在 TX FIFO 中。TX FIFO 中的字节将由 app_uart 模块写入 TXD 寄存器。当字节成功传输时,将触发EVENT_TXDRDY中断。app_uart模块中的中断处理程序将从FIFO获取下一个字节并将其写入TXD寄存器。应用程序可以调用app_uart_put来请求传输字节。
错误处理
在数据接收期间发生错误时,在UART外设中设置错误标志。错误将作为包含evt_type字段中APP_UART_ERROR_SOURCE的app_uart_evt_t传播到应用程序事件处理程序。data.error_source字段将包含来自UART外设寄存器的原始错误源信息。
如果接收数据时RX FIFO已满,则将生成包含evt_type字段中APP_UART_NRF_ERROR app_uart_evt_t并将其发送到应用程序。该事件将在data.error_code字段中包含来自 FIFO 的原始错误代码。
具有流量控制的UART低功耗模式
当UART配置为使用带流量控制的低功耗模式时,它将尽可能使用低功耗模式。当来自远程端的 CTS 信号设置为非活动状态时,UART 外设将被停用。当远程端将 CTS 设置为活动状态时,UART 外设将被激活。
当数据在TX FIFO中可用且CTS处于活动状态时,将启用STARTTX寄存器。
应用程序应使用app_uart_get_connection_state来确保 nRF51 芯片仅在 UART 外设断开连接时关闭电源。当 nRF51 芯片处于断电模式时,远程端可以通过将 CTS 设置为活动状态来唤醒 nRF51 芯片。
|
|