当前位置:   article > 正文

nrf51822 --- 串口通信_nrf51822串口通信

nrf51822串口通信

1.目的

     串口通信,用于打印log,方便测试

2.分析

    串口通信,用于打印log,方便测试

3.平台:

协议栈版本:SDK10.0.0

编译软件:keil 5.12

硬件平台:微雪开发板nrf51822

例子:SDK 10.0.0\SDK10.0\examples\ble_peripheral\ble_app_hrs\pca10028\s110\arm4

4.步骤

 1.查看main()函数里面的

   app_trace_init();

跳进去可以看到: 函数没有具体的内容。查看可以知道是没有定义ENABLE_DEBUG_LOG_SUPPORT 

  1. #else // ENABLE_DEBUG_LOG_SUPPORT
  2. #define app_trace_init(...)
  3. #define app_trace_log(...)
  4. #define app_trace_dump(...)
  5. #endif // ENABLE_DEBUG_LOG_SUPPORT
  6. /** @} */


2.在app_trace.h里面定义定义宏

#define  ENABLE_DEBUG_LOG_SUPPORT  1

3.app_trace.c里面定义 添加 #include  “app_trace.h”

  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <string.h>
  4. #include <stdarg.h>
  5. #include "app_trace.h" //add

4.查看app_trace_init初始化:

  1. void app_trace_init(void)
  2. {
  3. uint32_t err_code = NRF_SUCCESS;
  4. const app_uart_comm_params_t comm_params =
  5. {
  6. RX_PIN_NUMBER, //定义RX脚
  7. TX_PIN_NUMBER, //定义TX脚
  8. RTS_PIN_NUMBER,
  9. CTS_PIN_NUMBER,
  10. APP_UART_FLOW_CONTROL_DISABLED, //流控关闭
  11. false,
  12. UART_BAUDRATE_BAUDRATE_Baud38400 //选择波特率
  13. };
  14. APP_UART_FIFO_INIT(&comm_params,
  15. UART_RX_BUF_SIZE,
  16. UART_TX_BUF_SIZE,
  17. <strong> uart_event_handle, //uart_error_handle, 这里把uart_errror_handle改为uart_event_handle</strong>
  18. APP_IRQ_PRIORITY_LOW,
  19. err_code);
  20. UNUSED_VARIABLE(err_code);
  21. }

uart_event_handle代码如下:

  1. void uart_event_handle(app_uart_evt_t * p_event)
  2. {
  3. static uint8_t data_array[20];
  4. static uint8_t index = 0;
  5. uint32_t err_code;
  6. switch (p_event->evt_type)
  7. {
  8. case APP_UART_DATA_READY:
  9. UNUSED_VARIABLE(app_uart_get(&data_array[index]));
  10. <strong>//接收数据地方 </strong>
  11. printf("data_array[0]: %x \r\n",data_array[0]); //printf("data_array[1]: %x \r\n",data_array[1]);
  12. //}
  13. //SEGGER_RTT_printf(0,"data_array: %x \r\n",data_array[0]);
  14. // index++;
  15. // if ((data_array[index - 1] == '\n') || (index >= (BLE_NUS_MAX_DATA_LEN)))
  16. // {
  17. // err_code = ble_nus_string_send(&m_nus, data_array, index);
  18. // if (err_code != NRF_ERROR_INVALID_STATE)
  19. // {
  20. // APP_ERROR_CHECK(err_code);
  21. // }
  22. //
  23. // index = 0;
  24. // }
  25. break;
  26. case APP_UART_COMMUNICATION_ERROR:
  27. APP_ERROR_HANDLER(p_event->data.error_communication);
  28. break;
  29. case APP_UART_FIFO_ERROR:
  30. APP_ERROR_HANDLER(p_event->data.error_code);
  31. break;
  32. default:
  33. break;
  34. }
  35. }




主函数代码如下:

  1. int main(void)
  2. {
  3. uint32_t err_code;
  4. bool erase_bonds;
  5. // Initialize.
  6. app_trace_init();
  7. timers_init();
  8. buttons_leds_init(&erase_bonds);
  9. ble_stack_init();
  10. device_manager_init(erase_bonds);
  11. gap_params_init();
  12. advertising_init();
  13. services_init();
  14. sensor_simulator_init();
  15. conn_params_init();
  16. // Start execution.
  17. application_timers_start();
  18. err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
  19. APP_ERROR_CHECK(err_code);
  20. app_trace_log("hello world");
  21. // Enter main loop.
  22. for (;;)
  23. {
  24. power_manage();
  25. }
  26. }

测试打印结果

 hello world


发送和接收一样

ok!!测试ok


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/194220
推荐阅读
相关标签
  

闽ICP备14008679号