52840串口3

抽象一些接口给BC32使用
1----
把官方的下架
简单来说就是MAIN里面 不要这句话
    app_uart_init(NULL,
              &buffer,
              APP_UartEvtHandle,
              _PRIO_APP_HIGH );
然后不能用printf了!!!!也就是delMAIN的2句话
用谷雨的UART_Init(APP_UartEvtHandle);   //初始化串口
UART_Write("Uart Test\r\n",strlen("Uart Test\r\n"));

        那么RX呢?
        其实这个问题一般都是这样的 RX是不受控制的 也就是 UART_Read 这个函数需要死循环
        谷雨的测试代码是在main里面 
        我不能这样 我要在收到数据以后 解析数据
        所以我是函数是

 uint8_t UART_TxRx(uint8_t *tx, uint8_t txLen, uint8_t *rx, uint8_t *rxLen)
{
    volatile bool acked = false;
//TX
    UART_Write(tx, txLen);
//等待RX
    for (uint8_t i=0; i < 200; i++)
    {
        switch(uart_evt.evt_type)
        {
            case UART_EVT_RX_TIMEOUT:
            case UART_EVT_RX_OVERFLOW:
                acked = true;
                //len = UART_Read(Buf,uart_evt.status);
                //UART_Write(Buf,len);      //从串口发出
                //Buf[len] = 0;

                uart_evt.evt_type = UART_EVT_NONE;
            break;
            default :
            break;
        }
        NRF_LOG_INFO("UART_TxRx %d--%d\r\n",i,acked);
        if(acked) break;
        nrf_delay_ms(200); 
    }
//解析数据
    if(!acked) { NRF_LOG_INFO("rx no.");return 0;}
    *rxLen = UART_Read(rx,uart_evt.status);
     NRF_LOG_INFO("rx %s\r\n",rx);
    return *rxLen;
}

测试 这个比较麻烦 设备上电 程序TX123出来  我的PC要快速给应答 就测试OK

nrf52840是一款功能强大的蓝牙低功耗芯片,具备多种特性,其中之一就是可以驱动多个串口。以下是关于如何使用nrf52840驱动两个串口的说明。 首先,nrf52840具有多个UART接口,每个UART接口都可以用作串口通信。UART是一种通用的异步串行通信协议,常用于与外部设备进行数据传输。nrf52840的UART接口支持多种通信模式和波特率设置,可以根据具体需求进行配置。 为了使用nrf52840的两个串口,我们可以按照以下步骤进行: 1. 确定使用哪两个UART接口作为串口。nrf52840通常具有多个UART接口可供选择,根据实际需要,选择两个适合的UART接口作为串口。 2. 根据选定的UART接口,进行引脚配置。每个UART接口需要与芯片的引脚进行连接,将其与外部设备连接起来。可以根据nrf52840的引脚映射表找到相应的引脚连接。 3. 通过编程配置UART接口。使用nrf52840的软件开发工具,如nRF5 SDK或nRF Connect SDK,在代码中配置两个UART接口的工作模式、数据传输参数等。这些配置可以包括波特率、数据位、停止位、校验等。 4. 在程序中通过API使用串口。一旦两个UART接口已经配置好,就可以通过API函数在程序中使用串口进行数据的收发。可以用用于发送和接收数据的API函数,如nrf_uart_tx和nrf_uart_rx等。 总结起来,nrf52840可以通过正确配置和使用多个UART接口来驱动两个串口。首先选择适合的UART接口,然后进行引脚配置,并通过编程设置每个UART接口的工作模式和参数。最后,在程序中使用相应的API函数来进行数据的收发。这样,我们就可以通过nrf52840来同时驱动两个串口了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值