This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

beaconing example for nrf52840 stopped by vector

Dear Sir,

I am using Example beaconing_nrf52840_xxAA_s140_6_1_0 in nrf5 SDK for Mesh_v3.0.0 get stopped after running for sort period. I have tried to debug but could not find any solution. I am using MINEW make MS88SF2 module. I am also attaching pictures for the problem. Kindly suggest remedial solution.

Parents
  • Hi, 

    Are you using unmodified version of the example? Could you try to add the define DEBUG in your Preprocessor(Project -> Edit Options -> Preprocessor -> Preprocessor Definitions), then add a breakpoint on app_error_fault_handler() to see which error you get. You will see which error you get and which function is returning this error.

  • Hi,

    Thanks for your reply. i have checked as per your suggestion. But It was observed program stops at beacon_scan_uart. Same problem is observed in beaconning older and newer version for nrf52840 only and it is working on nrf52832. But Uart portion which is added to original beaconing example

    /* Copyright (c) 2010 - 2018, Nordic Semiconductor ASA
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without modification,
     * are permitted provided that the following conditions are met:
     *
     * 1. Redistributions of source code must retain the above copyright notice, this
     * list of conditions and the following disclaimer.
     *
     * 2. Redistributions in binary form, except as embedded into a Nordic
     *    Semiconductor ASA integrated circuit in a product or a software update for
     *    such product, must reproduce the above copyright notice, this list of
     *    conditions and the following disclaimer in the documentation and/or other
     *    materials provided with the distribution.
     *
     * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
     *    contributors may be used to endorse or promote products derived from this
     *    software without specific prior written permission.
     *
     * 4. This software, with or without modification, must only be used with a
     *    Nordic Semiconductor ASA integrated circuit.
     *
     * 5. Any software provided in binary form under this license must not be reverse
     *    engineered, decompiled, modified and/or disassembled.
     *
     * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
     * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
     * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    
    #include <stdio.h>
    #include "nrf_delay.h"
    #include "nrf_gpio.h"
    #include "ble.h"
    #include "boards.h"
    #include "simple_hal.h"
    #include "nrf_mesh.h"
    #include "log.h"
    #include "advertiser.h"
    #include "mesh_app_utils.h"
    #include "mesh_stack.h"
    #include "ble_softdevice_support.h"
    #include "mesh_provisionee.h"
    #include "nrf_mesh_config_examples.h"
    #include "app_timer.h"
    #include "example_common.h"
    #include "SEGGER_RTT.h"
    #include "app_uart.h"
    #include "app_error.h"
    #if defined (UART_PRESENT)
    #include "nrf_uart.h"
    #endif
    #if defined (UARTE_PRESENT)
    #include "nrf_uarte.h"
    #endif
    
    #if defined(NRF51) && defined(NRF_MESH_STACK_DEPTH)
    #include "stack_depth.h"
    #endif
    
    #define MAX_TEST_DATA_BYTES     (100U)                /**< max number of test bytes to be used for tx and rx. */
    #define UART_TX_BUF_SIZE 512                         /**< UART TX buffer size. */
    #define UART_RX_BUF_SIZE 512                         /**< UART RX buffer size. */
    
    void uart_error_handle(app_uart_evt_t * p_event)
    {
        if (p_event->evt_type == APP_UART_COMMUNICATION_ERROR)
        {
            SEGGER_RTT_printf(0,"APP_UART_COMMUNICATION_ERROR\n");
            APP_ERROR_HANDLER(p_event->data.error_communication);
            
        }
        else if (p_event->evt_type == APP_UART_FIFO_ERROR)
        {
            SEGGER_RTT_printf(0,"APP_UART_FIFO_ERROR\n");
            APP_ERROR_HANDLER(p_event->data.error_code);
        }
    }
    /* When UART is used for communication with the host do not use flow control.*/
    #define UART_HWFC APP_UART_FLOW_CONTROL_DISABLED    //APP_UART_FLOW_CONTROL_ENABLED
    
    #define STATIC_AUTH_DATA        {0x6E, 0x6F, 0x72, 0x64, 0x69, 0x63, 0x5F, 0x65, 0x78, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x5F, 0x31}
    #define ADVERTISER_BUFFER_SIZE  (64)
    
    /** Single advertiser instance. May periodically transmit one packet at a time. */
    static advertiser_t m_advertiser;
    
    static uint8_t      m_adv_buffer[ADVERTISER_BUFFER_SIZE];
    static bool         m_device_provisioned;
    
    
    static void rx_cb(const nrf_mesh_adv_packet_rx_data_t * p_rx_data)
    {
        LEDS_OFF(BSP_LED_0_MASK);  /* @c LED_RGB_RED_MASK on pca10031 */
        char msg[64];
        (void) sprintf(msg, "$ [@%u]: RSSI: %3d ADV TYPE: %x ADDR: [%02x:%02x:%02x:%02x:%02x:%02x]",
                       p_rx_data->p_metadata->params.scanner.timestamp,
                       p_rx_data->p_metadata->params.scanner.rssi,
                       p_rx_data->adv_type,
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[0],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[1],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[2],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[3],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[4],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[5]);
        __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, msg, p_rx_data->p_payload, p_rx_data->length);
        printf(msg);
        printf("\n");
        //LEDS_ON(BSP_LED_0_MASK);  /* @c LED_RGB_RED_MASK on pca10031 */
    }
    
    static void adv_init(void)
    {
        advertiser_instance_init(&m_advertiser, NULL, m_adv_buffer, ADVERTISER_BUFFER_SIZE);
    }
    
    static void adv_start(void)
    {
        advertiser_enable(&m_advertiser);
        static const uint8_t adv_data[] =
        {
            0x11, /* AD data length (including type, but not itself) */
            0x09, /* AD data type (Complete local name) */
            'N',  /* AD data payload (Name of device) */
            'o',
            'r',
            'd',
            'i',
            'c',
            ' ',
            'S',
            'e',
            'm',
            'i',
            ' ',
            'M',
            'e',
            's',
            'h'
        };
    
        /* Allocate packet */
        adv_packet_t * p_packet = advertiser_packet_alloc(&m_advertiser, sizeof(adv_data));
        if (p_packet)
        {
            /* Construct packet contents */
            memcpy(p_packet->packet.payload, adv_data, sizeof(adv_data));
            /* Repeat forever */
            p_packet->config.repeats = ADVERTISER_REPEAT_INFINITE;
    
            advertiser_packet_send(&m_advertiser, p_packet);
        }
    
    }
    
    static void node_reset(void)
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- Node reset  -----\n");
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_RESET);
        /* This function may return if there are ongoing flash operations. */
        mesh_stack_device_reset();
    }
    
    static void config_server_evt_cb(const config_server_evt_t * p_evt)
    {
        if (p_evt->type == CONFIG_SERVER_EVT_NODE_RESET)
        {
            node_reset();
        }
    }
    
    static void device_identification_start_cb(uint8_t attention_duration_s)
    {
        hal_led_mask_set(LEDS_MASK, false);
        hal_led_blink_ms(BSP_LED_2_MASK  | BSP_LED_3_MASK, 
                         LED_BLINK_ATTENTION_INTERVAL_MS, 
                         LED_BLINK_ATTENTION_COUNT(attention_duration_s));
    }
    
    static void provisioning_aborted_cb(void)
    {
        hal_led_blink_stop();
    }
    
    static void provisioning_complete_cb(void)
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Successfully provisioned\n");
    
        dsm_local_unicast_address_t node_address;
        dsm_local_unicast_addresses_get(&node_address);
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Node Address: 0x%04x \n", node_address.address_start);
    
       // hal_led_blink_stop();
        //hal_led_mask_set(LEDS_MASK, LED_MASK_STATE_OFF);
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_PROV);
    }
    
    static void mesh_init(void)
    {
        mesh_stack_init_params_t init_params =
        {
            .core.irq_priority = NRF_MESH_IRQ_PRIORITY_LOWEST,
            .core.lfclksrc     = DEV_BOARD_LF_CLK_CFG,
            .models.config_server_cb = config_server_evt_cb
        };
        ERROR_CHECK(mesh_stack_init(&init_params, &m_device_provisioned));
    
        /* Start listening for incoming packets */
        nrf_mesh_rx_cb_set(rx_cb);
    
        /* Start Advertising own beacon */
        adv_init();
    }
    
    static void initialize(void)
    {
    #if defined(NRF51) && defined(NRF_MESH_STACK_DEPTH)
        stack_depth_paint_stack();
    #endif
    
        ERROR_CHECK(app_timer_init());
       // hal_leds_init();
    
        __LOG_INIT(LOG_SRC_APP, LOG_LEVEL_INFO, log_callback_rtt);
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- Bluetooth Mesh Beacon Example -----\n");
    
        ble_stack_init();
    
        mesh_init();
    
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Initialization complete!\n");
    }
    
    static void start(void)
    {
        if (!m_device_provisioned)
        {
            static const uint8_t static_auth_data[NRF_MESH_KEY_SIZE] = STATIC_AUTH_DATA;
            mesh_provisionee_start_params_t prov_start_params =
            {
                .p_static_data    = static_auth_data,
                .prov_complete_cb = provisioning_complete_cb,
                .prov_device_identification_start_cb = NULL, //device_identification_start_cb,
                .prov_device_identification_stop_cb = NULL,
                .prov_abort_cb = provisioning_aborted_cb,
                .p_device_uri = NULL
            };
            ERROR_CHECK(mesh_provisionee_prov_start(&prov_start_params));
        }
        adv_start();
    
        ERROR_CHECK(mesh_stack_start());
    
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Bluetooth Mesh Beacon example started!\n");
    
       // hal_led_mask_set(LEDS_MASK, LED_MASK_STATE_OFF);
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_START);
    }
    
    static void uart_init(void)
    {
          uint32_t err_code;
          const app_uart_comm_params_t comm_params =
          {
              RX_PIN_NUMBER,
              TX_PIN_NUMBER,
              RTS_PIN_NUMBER,
              CTS_PIN_NUMBER,
              UART_HWFC,
              false,
          #if defined (UART_PRESENT)
              NRF_UART_BAUDRATE_115200
          #else
              NRF_UARTE_BAUDRATE_115200
          #endif
          };
        APP_UART_FIFO_INIT(&comm_params,
                             UART_RX_BUF_SIZE,
                             UART_TX_BUF_SIZE,
                             uart_error_handle,
                             APP_IRQ_PRIORITY_LOWEST,
                             err_code);
          APP_ERROR_CHECK(err_code);
          printf("Uart Service Started\n");
          //err_code=app_uart_put('A');
          //err_code=app_uart_put('B');
         // err_code=app_uart_put('c');
     }
    
    int main(void)
    {
        initialize();
        start();
        uart_init();
        for (;;)
        {
            (void)sd_app_evt_wait();
        }
    }
    
    is not working in nrf52832 board.

Reply
  • Hi,

    Thanks for your reply. i have checked as per your suggestion. But It was observed program stops at beacon_scan_uart. Same problem is observed in beaconning older and newer version for nrf52840 only and it is working on nrf52832. But Uart portion which is added to original beaconing example

    /* Copyright (c) 2010 - 2018, Nordic Semiconductor ASA
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without modification,
     * are permitted provided that the following conditions are met:
     *
     * 1. Redistributions of source code must retain the above copyright notice, this
     * list of conditions and the following disclaimer.
     *
     * 2. Redistributions in binary form, except as embedded into a Nordic
     *    Semiconductor ASA integrated circuit in a product or a software update for
     *    such product, must reproduce the above copyright notice, this list of
     *    conditions and the following disclaimer in the documentation and/or other
     *    materials provided with the distribution.
     *
     * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
     *    contributors may be used to endorse or promote products derived from this
     *    software without specific prior written permission.
     *
     * 4. This software, with or without modification, must only be used with a
     *    Nordic Semiconductor ASA integrated circuit.
     *
     * 5. Any software provided in binary form under this license must not be reverse
     *    engineered, decompiled, modified and/or disassembled.
     *
     * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
     * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
     * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    
    #include <stdio.h>
    #include "nrf_delay.h"
    #include "nrf_gpio.h"
    #include "ble.h"
    #include "boards.h"
    #include "simple_hal.h"
    #include "nrf_mesh.h"
    #include "log.h"
    #include "advertiser.h"
    #include "mesh_app_utils.h"
    #include "mesh_stack.h"
    #include "ble_softdevice_support.h"
    #include "mesh_provisionee.h"
    #include "nrf_mesh_config_examples.h"
    #include "app_timer.h"
    #include "example_common.h"
    #include "SEGGER_RTT.h"
    #include "app_uart.h"
    #include "app_error.h"
    #if defined (UART_PRESENT)
    #include "nrf_uart.h"
    #endif
    #if defined (UARTE_PRESENT)
    #include "nrf_uarte.h"
    #endif
    
    #if defined(NRF51) && defined(NRF_MESH_STACK_DEPTH)
    #include "stack_depth.h"
    #endif
    
    #define MAX_TEST_DATA_BYTES     (100U)                /**< max number of test bytes to be used for tx and rx. */
    #define UART_TX_BUF_SIZE 512                         /**< UART TX buffer size. */
    #define UART_RX_BUF_SIZE 512                         /**< UART RX buffer size. */
    
    void uart_error_handle(app_uart_evt_t * p_event)
    {
        if (p_event->evt_type == APP_UART_COMMUNICATION_ERROR)
        {
            SEGGER_RTT_printf(0,"APP_UART_COMMUNICATION_ERROR\n");
            APP_ERROR_HANDLER(p_event->data.error_communication);
            
        }
        else if (p_event->evt_type == APP_UART_FIFO_ERROR)
        {
            SEGGER_RTT_printf(0,"APP_UART_FIFO_ERROR\n");
            APP_ERROR_HANDLER(p_event->data.error_code);
        }
    }
    /* When UART is used for communication with the host do not use flow control.*/
    #define UART_HWFC APP_UART_FLOW_CONTROL_DISABLED    //APP_UART_FLOW_CONTROL_ENABLED
    
    #define STATIC_AUTH_DATA        {0x6E, 0x6F, 0x72, 0x64, 0x69, 0x63, 0x5F, 0x65, 0x78, 0x61, 0x6D, 0x70, 0x6C, 0x65, 0x5F, 0x31}
    #define ADVERTISER_BUFFER_SIZE  (64)
    
    /** Single advertiser instance. May periodically transmit one packet at a time. */
    static advertiser_t m_advertiser;
    
    static uint8_t      m_adv_buffer[ADVERTISER_BUFFER_SIZE];
    static bool         m_device_provisioned;
    
    
    static void rx_cb(const nrf_mesh_adv_packet_rx_data_t * p_rx_data)
    {
        LEDS_OFF(BSP_LED_0_MASK);  /* @c LED_RGB_RED_MASK on pca10031 */
        char msg[64];
        (void) sprintf(msg, "$ [@%u]: RSSI: %3d ADV TYPE: %x ADDR: [%02x:%02x:%02x:%02x:%02x:%02x]",
                       p_rx_data->p_metadata->params.scanner.timestamp,
                       p_rx_data->p_metadata->params.scanner.rssi,
                       p_rx_data->adv_type,
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[0],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[1],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[2],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[3],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[4],
                       p_rx_data->p_metadata->params.scanner.adv_addr.addr[5]);
        __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, msg, p_rx_data->p_payload, p_rx_data->length);
        printf(msg);
        printf("\n");
        //LEDS_ON(BSP_LED_0_MASK);  /* @c LED_RGB_RED_MASK on pca10031 */
    }
    
    static void adv_init(void)
    {
        advertiser_instance_init(&m_advertiser, NULL, m_adv_buffer, ADVERTISER_BUFFER_SIZE);
    }
    
    static void adv_start(void)
    {
        advertiser_enable(&m_advertiser);
        static const uint8_t adv_data[] =
        {
            0x11, /* AD data length (including type, but not itself) */
            0x09, /* AD data type (Complete local name) */
            'N',  /* AD data payload (Name of device) */
            'o',
            'r',
            'd',
            'i',
            'c',
            ' ',
            'S',
            'e',
            'm',
            'i',
            ' ',
            'M',
            'e',
            's',
            'h'
        };
    
        /* Allocate packet */
        adv_packet_t * p_packet = advertiser_packet_alloc(&m_advertiser, sizeof(adv_data));
        if (p_packet)
        {
            /* Construct packet contents */
            memcpy(p_packet->packet.payload, adv_data, sizeof(adv_data));
            /* Repeat forever */
            p_packet->config.repeats = ADVERTISER_REPEAT_INFINITE;
    
            advertiser_packet_send(&m_advertiser, p_packet);
        }
    
    }
    
    static void node_reset(void)
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- Node reset  -----\n");
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_RESET);
        /* This function may return if there are ongoing flash operations. */
        mesh_stack_device_reset();
    }
    
    static void config_server_evt_cb(const config_server_evt_t * p_evt)
    {
        if (p_evt->type == CONFIG_SERVER_EVT_NODE_RESET)
        {
            node_reset();
        }
    }
    
    static void device_identification_start_cb(uint8_t attention_duration_s)
    {
        hal_led_mask_set(LEDS_MASK, false);
        hal_led_blink_ms(BSP_LED_2_MASK  | BSP_LED_3_MASK, 
                         LED_BLINK_ATTENTION_INTERVAL_MS, 
                         LED_BLINK_ATTENTION_COUNT(attention_duration_s));
    }
    
    static void provisioning_aborted_cb(void)
    {
        hal_led_blink_stop();
    }
    
    static void provisioning_complete_cb(void)
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Successfully provisioned\n");
    
        dsm_local_unicast_address_t node_address;
        dsm_local_unicast_addresses_get(&node_address);
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Node Address: 0x%04x \n", node_address.address_start);
    
       // hal_led_blink_stop();
        //hal_led_mask_set(LEDS_MASK, LED_MASK_STATE_OFF);
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_PROV);
    }
    
    static void mesh_init(void)
    {
        mesh_stack_init_params_t init_params =
        {
            .core.irq_priority = NRF_MESH_IRQ_PRIORITY_LOWEST,
            .core.lfclksrc     = DEV_BOARD_LF_CLK_CFG,
            .models.config_server_cb = config_server_evt_cb
        };
        ERROR_CHECK(mesh_stack_init(&init_params, &m_device_provisioned));
    
        /* Start listening for incoming packets */
        nrf_mesh_rx_cb_set(rx_cb);
    
        /* Start Advertising own beacon */
        adv_init();
    }
    
    static void initialize(void)
    {
    #if defined(NRF51) && defined(NRF_MESH_STACK_DEPTH)
        stack_depth_paint_stack();
    #endif
    
        ERROR_CHECK(app_timer_init());
       // hal_leds_init();
    
        __LOG_INIT(LOG_SRC_APP, LOG_LEVEL_INFO, log_callback_rtt);
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- Bluetooth Mesh Beacon Example -----\n");
    
        ble_stack_init();
    
        mesh_init();
    
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Initialization complete!\n");
    }
    
    static void start(void)
    {
        if (!m_device_provisioned)
        {
            static const uint8_t static_auth_data[NRF_MESH_KEY_SIZE] = STATIC_AUTH_DATA;
            mesh_provisionee_start_params_t prov_start_params =
            {
                .p_static_data    = static_auth_data,
                .prov_complete_cb = provisioning_complete_cb,
                .prov_device_identification_start_cb = NULL, //device_identification_start_cb,
                .prov_device_identification_stop_cb = NULL,
                .prov_abort_cb = provisioning_aborted_cb,
                .p_device_uri = NULL
            };
            ERROR_CHECK(mesh_provisionee_prov_start(&prov_start_params));
        }
        adv_start();
    
        ERROR_CHECK(mesh_stack_start());
    
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Bluetooth Mesh Beacon example started!\n");
    
       // hal_led_mask_set(LEDS_MASK, LED_MASK_STATE_OFF);
       // hal_led_blink_ms(LEDS_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_START);
    }
    
    static void uart_init(void)
    {
          uint32_t err_code;
          const app_uart_comm_params_t comm_params =
          {
              RX_PIN_NUMBER,
              TX_PIN_NUMBER,
              RTS_PIN_NUMBER,
              CTS_PIN_NUMBER,
              UART_HWFC,
              false,
          #if defined (UART_PRESENT)
              NRF_UART_BAUDRATE_115200
          #else
              NRF_UARTE_BAUDRATE_115200
          #endif
          };
        APP_UART_FIFO_INIT(&comm_params,
                             UART_RX_BUF_SIZE,
                             UART_TX_BUF_SIZE,
                             uart_error_handle,
                             APP_IRQ_PRIORITY_LOWEST,
                             err_code);
          APP_ERROR_CHECK(err_code);
          printf("Uart Service Started\n");
          //err_code=app_uart_put('A');
          //err_code=app_uart_put('B');
         // err_code=app_uart_put('c');
     }
    
    int main(void)
    {
        initialize();
        start();
        uart_init();
        for (;;)
        {
            (void)sd_app_evt_wait();
        }
    }
    
    is not working in nrf52832 board.

Children
No Data
Related