一、前言
近期项目上采用了Nordic的nRF52833这颗BLE SoC芯片,该芯片有2个UART,分别是UART0和UART1,但是官方例程却没有关于如何使用UART1的例子。经过一番摸索,终于把UART1用起来了。写下此博文,希望给读者提供一些参考。
二、环境说明
SDK版本:nRF5_SDK_17.0.2_d674dde
SoftDevice版本:S113_nrf52_7.2.0
Demo程序:nRF5_SDK_17.0.2_d674dde\examples\ble_peripheral\ble_app_uart\pca10100\s113
IDE:MDK 5.3.0
三、Demo程序中UART的封装关系
在nRF5_SDK提供的demo程序中,将UART的相关API进行了多层封装,其层次关系如下:

实际上,app_uart.h和app_uart_fifo.c是nRF5_SDK做的一个应用级的封装,主要功能是为串口的收发提供队列。我们在官方例程中看到的有关Uart的例程,都是基于这一层实现的。但是在nRF5_SDK_17.0.2中,app_uart层的API均默认只有一个UART,那就是UART0。为了使用UART1,我们需要绕过app_u