精华内容
下载资源
问答
  • CC2530 串口打印log

    千次阅读 2016-12-06 10:51:28
    2530的仿真器运行过程中不能打断点,所以很多时候,串口打印log就很重要了,花了点时间,做了一个debug的打印代码,加上可变参数,不过因为只是用来打印log的,没有用来接收,所以只有发送,用的是寄存器直接发送,...

    2530的仿真器运行过程中不能打断点,所以很多时候,串口打印log就很重要了,花了点时间,做了一个debug的打印代码,加上可变参数,不过因为只是用来打印log的,没有用来接收,所以只有发送,用的是寄存器直接发送,比较可靠,坏处是,如果打印太多,比较占cpu。

    代码亲测可用。


    需要用哪个串口,哪个引脚,直接加入宏就好,打印log推荐使用SendDebugString()函数,用法类似printf,可变参数打印,比较方便。波特率选择的是115200


    #include "iocc2530.h"
    #include "hal_types.h"
    #include "string.h"
    #include "uart_debug.h"
    #include <stdarg.h>
    #include "stdio.h"
    #include "cfg.h"
    
    
    
    /*choose which IO to use*/
    void UART_Debug_Init(void)
    {
    #ifdef UARTDEBUG
    #ifdef UART0_ALT0_DEBUG/*  Uart0 Alt0  TX:P0.3  RX:P0.2   */   
        PERCFG &= 0xFE ;
        P0SEL |= 0x0C;
        U0CSR = 0x80;
        U0GCR = 11;
        U0BAUD = 216;
        U0CSR |= 0x40;
    #elif (defined UART0_ALT1_DEBUG)/*  Uart0 Alt1   TX:P1.5  RX:P1.4  */
        PERCFG |= 0x01;
        P1SEL |= 0x30;
        U0CSR = 0x80;
        U0GCR = 11;
        U0BAUD = 216;
        U0CSR |= 0x40;
        
    #elif (defined UART1_ALT0_DEBUG) /*  Uart1 Alt0   TX:P0.4  RX:P0.5  */
        PERCFG &= 0xFD ;
        P0SEL |= 0x30;
        U1CSR = 0x80;
        U1GCR = 11;
        U1UCR = 0x80;
        U1UCR |= 0x02;
        U1BAUD = 216;
        U1CSR |= 0x40;  
    #elif (defined UART1_ALT1_DEBUG) /*  Uart1 Alt1   TX:P1.6  RX:P1.7  */
        PERCFG |= 0x02 ;
        P1SEL |= 0xC0;
        U1CSR = 0x80;
        U1GCR = 11;
        U1UCR = 0x80;
        U1UCR |= 0x02;
        U1BAUD = 216;
        U1CSR |= 0x40;  
        
    #endif
    #endif
    
    }
    
    uint16  SendDebugWordData(uint8 worddata)
    {
    #ifdef UARTDEBUG
    #if ((defined  UART0_ALT1_DEBUG) || (defined UART1_ALT0_DEBUG))
      while(U1CSR&0x01);    //等待UART空闲时发送数据
      U1DBUF = worddata;  
      
    #elif ((defined UART0_ALT1_DEBUG) || (defined UART0_ALT0_DEBUG))
      while(U0CSR&0x01);    //等待UART空闲时发送数据
      U0DBUF = worddata;
    #endif
      
    #endif
      return 1;
    }
    
    
    
    
    uint16 SendDebugString(char* string,...)        //it's used like printf()
    {
    #ifdef UARTDEBUG
      va_list ap;
      char pstring[150];
      va_start(ap,string);
      vsprintf(pstring,string,ap);
      SendDebugData((uint8*)pstring,strlen(pstring));
      va_end(ap);
       
    #endif
      return 1;
    }
    
    
    
    uint16 SendDebugIfo(char* string,uint16 data)
    {
    #ifdef UARTDEBUG
      uint8 stringbuf[100] = "";
      sprintf((char *)stringbuf,string,data);
      SendDebugData(stringbuf,strlen((char *)stringbuf)); 
    
    #endif
      return 1;
    }
    
    
    
    uint16  SendDebugData(uint8 *buf,uint8 len)
    {
    
    #ifdef UARTDEBUG
    #if ((defined UART1_ALT0_DEBUG) || (defined UART1_ALT1_DEBUG))
        while(len--)
        {
            while(U1CSR & 0x01 == 0x01);
            U1DBUF = *buf++;
        }   
    #elif ((defined UART0_ALT1_DEBUG) || (defined UART0_ALT0_DEBUG))
        while(len--)
        {
            while(U0CSR & 0x01 == 0x01);
            U0DBUF = *buf++;
        }  
    #endif
      
    #endif
        return 1;
    }
    
    


    展开全文
  • STM32的串口打印,支持不定长参数,调试时用,可以通过一个宏定义关闭所有的调试信息,方便调试。******************************/
  • //定义串口打印 #define user_main_printf(format, ...) printf( format \r\n,##__VA_ARGS__) #define user_main_info(format, ...) printf([main]info: format \r\n,##__VA_ARGS__) #define user_main_debug(format...

    云笔记,自用

    #define USER_MAIN_DEBUG
    #ifdef USER_MAIN_DEBUG
    //定义串口打印
    #define user_main_printf(format, ...) printf( format \r\n,##__VA_ARGS__)
    #define user_main_info(format, ...) printf([main]info: format \r\n,##__VA_ARGS__)
    #define user_main_debug(format, ...) printf([main]debug: format \r\n,##__VA_ARGS__)
    #define user_main_error(format, ...) printf([main]error: format \r\n,##__VA_ARGS__)
    #else
    //否则定义为空
    #define user_main_printf(format, ...)
    #define user_main_info(format, ...) 
    #define user_main_debug(format, ...)
    #define user_main_error(format, ...)
    #endif
    
    
    展开全文
  • 现在只是能够打印字符串 ,如果打印数字,或者是如何使用 printf ,需要进一步研究 实验的时候,是用在板子的 j2上介入一个miniUSB线 连接到 PC的USB口, 在PC 的win7 64位系统中,安装 cp2102的驱动,然后通过...

    用一个 miniUSB线 连接 板子 和 PC,安装cp2102 win7 64位 驱动
    修改 《第三部分:BLE蓝牙实验\BLE实验3:按键蓝牙通知\》 代码
    1, 添加 文件
    这里写图片描述

    该文件位于:

    第三部分:BLE蓝牙实验\BLE实验3:按键蓝牙通知\Source\simple_uart\simple_uart.c

    然后在 main.c中加入如下代码:

    #include "simple_uart.h"
    
    /**@brief  Function for initializing the UART module.
     */
    static void uart_init(void)
    {
        /**@snippet [UART Initialization] */
        simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);
    
        NRF_UART0->INTENSET = UART_INTENSET_RXDRDY_Enabled << UART_INTENSET_RXDRDY_Pos;
    
        NVIC_SetPriority(UART0_IRQn, APP_IRQ_PRIORITY_LOW);
        NVIC_EnableIRQ(UART0_IRQn);
        /**@snippet [UART Initialization] */
    }
    
    
    /**@brief   Function for handling UART interrupts.
     *
     * @details This function will receive a single character from the UART and append it to a string.
     *          The string will be be sent over BLE when the last character received was a 'new line'
     *          i.e '\n' (hex 0x0D) or if the string has reached a length of @ref NUS_MAX_DATA_LENGTH.
     */
    void UART0_IRQHandler(void)
    {
        static uint8_t data_array[23];
        static uint8_t index = 0;
        uint32_t err_code;
    
        /**@snippet [Handling the data received over UART] */
    
        data_array[index] = simple_uart_get();
        index++;
    
        if ((data_array[index - 1] == '\n') || (index >= (23 - 1)))
        {
            #if 0
            err_code = ble_nus_send_string(&m_nus, data_array, index + 1);
            if (err_code != NRF_ERROR_INVALID_STATE)
            {
                APP_ERROR_CHECK(err_code);
            }
            #endif
    
            index = 0;
        }
    
        /**@snippet [Handling the data received over UART] */
    }
    

    main函数如下:

    int main(void)
    {
        // Initialize
        leds_init();
        timers_init();
        gpiote_init();
        buttons_init();
        uart_init();//外设初始化
    
        ble_stack_init();
        scheduler_init();    
        gap_params_init();
        services_init();
        advertising_init();
        conn_params_init();
        sec_params_init();
    
        simple_uart_putstring("ble_app_led");  
      // Start execution
        timers_start();
    
        advertising_start();
    
        // Enter main loop
        for (;;)
        {
            app_sched_execute();
            power_manage();
        }
    }

    现在只是能够打印字符串 ,如果打印数字,或者是如何使用 printf ,需要进一步研究

    实验的时候,是用在板子的 j2上介入一个miniUSB线 连接到 PC的USB口,
    在PC 的win7 64位系统中,安装 cp2102的驱动,然后通过 UartAssist.exe
    设置正确的串口号和波特率 38400,就可以看到正确的数据了。

    展开全文
  • 泰凌微8258入门教程 基础篇③——调试日志Log串口打印

    一、前言

    泰凌微给的开发工具,并没有看到可以实时调试,单步调试,断点调试的功能。

    那么调试日志Log串口打印的功能就必须要有了,不然程序就没法debug了。

    二、设置步骤

    2.1 顶层宏定义

    HCI_LOG_FW_EN默认关闭,将其打开。
    在这里插入图片描述

    2.2 模块宏定义

    TL_LOG_SEL_VAL默认是((BIT(TL_LOG_USER))|(BIT(TL_LOG_NODE_SDK))),只打开了USER和NODE_SDK。

    我们目前使用的模块是8258_mesh,所以增加一个TL_LOG_MESH

    #define TL_LOG_SEL_VAL ((BIT(TL_LOG_USER))|(BIT(TL_LOG_NODE_SDK))|(BIT(TL_LOG_MESH)))

    也可以打开更多的LOG,如下基本打开了所有的LOG,

    #define TL_LOG_SEL_VAL ((BIT(TL_LOG_USER))|(BIT(TL_LOG_NODE_SDK))|(BIT(TL_LOG_MESH))|(BIT(TL_LOG_PROVISION))|(BIT(TL_LOG_PROXY))|(BIT(TL_LOG_GATEWAY))|(BIT(TL_LOG_NODE_BASIC))|(BIT(TL_LOG_COMMON))|(BIT(TL_LOG_IV_UPDATE))) //(BIT(TL_LOG_NODE_SDK)|BIT(TL_LOG_FRIEND)|BIT(TL_LOG_IV_UPDATE))

    在这里插入图片描述

    2.3 TX pin设置

    如上图,MESH_USER_DEFINE_MODE==MESH_NORMAL_MODE的时候,DEBUG_INFO_TX_PIN默认是GPIO_PB2

    硬件接线,接一个 USB转串口 的小板到电脑

    pin USB转串口
    GND GND
    GPIO_PB2 RX

    2.4 波特率设置

    波特率越快越好。

    不过一些比较差劲的USB转串口的板子,可能没法支持1M的波特率,会打印出一堆乱码。如果出现这种情况,可以试着降低波特率,看看有没有改善。
    在这里插入图片描述

    2.5 打印函数

    LOG_USER_MSG_INFO(pbuf, len, format,...)

    参数 描述
    pbuf 需要把某个 buffer 转换成字符打印出来时使用。如无,请写 0
    len pbuf 的长度

    在这里插入图片描述

    2.6 打印等级

    TL_LOG_LEVEL默认是TL_LOG_LEVEL_ERROR,则TL_LOG_LEVEL_USERTL_LOG_LEVEL_LIB都能打印出来。

    如果想要看到更多调试信息,可以试着将TL_LOG_LEVEL改大。
    在这里插入图片描述

    2.7 增加一行日志

    main函数里面,增加一行日志,开机就能打印
    在这里插入图片描述

    三、Log打印验证

    3.1 只打开USER的Log

    在这里插入图片描述

    3.2 打开更多模块Log

    在这里插入图片描述

    四、各流程Log

    4.1 开机日志

    [2021-04-02 14:25:01.329]
    RX:[INFO]:(common)System start ............
    
    [2021-04-02 14:25:06.323]
    RX:[USER]:(USER)kangweijian Start from SIG Mesh
    [LIB]:(sdk)mesh tx NoAck,op:0x4e82,src:0x6e74,dst:0xffff,par_len:2 par:ff ff 
    [INFO]:(mesh)mesh_tx_access_key_get:print index part0,0,0  
    

    4.2 设备Bind日志

    [2021-04-02 14:25:34.713]
    RX:[LIB]:(sdk)mesh_ble_connect_cb
    
    [2021-04-02 14:25:36.875]
    RX:[LIB]:(sdk)rcv provision invite 00 00 
    [LIB]:(sdk)send capa cmd 01 04 00 01 00 00 00 00 00 00 00 00 
    [LIB]:(sdk)rcv start cmd 02 00 00 00 00 00 
    [LIB]:(sdk)rcv pubkey cmd 
    03 6f 18 92 41 9b be 47  76 ff 49 49 09 21 75 77  59 05 10 3a 95 f6 e4 90  18 44 7c a9 11 e9 a7 32
    dd 15 98 d2 1d 04 41 45  af 24 ab 44 ee d1 44 e5  e8 29 e2 43 b0 31 c3 d4  a3 a9 2d 50 ed 41 43 d1
    e6 
    [LIB]:(sdk)send pubkey cmd 
    03 09 2c 04 bf 70 34 4b  1f 78 aa bb 52 97 3e 2b  d0 3a 1c 7d 1a 14 a6 f6  fe 91 8c 95 a9 1a 2e fe
    a3 8b da a7 af 6b 4e d9  29 bd 19 a2 77 3a 66 d7  27 28 4f 96 86 98 58 1c  c8 e0 9b 12 26 28 ff e0
    7c 
    [LIB]:(sdk)rcv comfirm cmd 05 7a fc 74 47 95 11 20 25 fe 8c 3c c1 27 5a b1 41 
    
    [2021-04-02 14:25:42.188]
    RX:[LIB]:(sdk)send comfirm cmd 05 0d 18 fc 47 18 1f fc 17 c3 d0 1b 23 14 14 a1 92 
    [LIB]:(sdk)rcv random cmd 06 2a ab 1e 62 1d f3 56 22 6e a9 3e 99 c6 99 0f 6a 
    [LIB]:(sdk)send random cmd 06 59 5a aa bf 28 e7 ca 9f 74 fb 39 10 4a 1b b9 7e 
    [LIB]:(sdk)rcv provision data cmd 
    07 0e ea f8 ff aa 28 fc  db cc fa 40 0d 7e f9 97  29 32 2d a4 b1 19 52 b5  47 18 de a9 6f b6 00 f0
    7a 36 
    [LIB]:(provision)device key 8e ce 28 30 d5 34 93 1d 22 b8 08 76 52 ff 20 35 
    [LIB]:(sdk)provision net info is 4f 61 07 b7 3e 40 93 9a bb bd c1 87 39 68 66 6d 00 00 00 00 00 00 00 26 00 
    [LIB]:(sdk)provision suc! 
    [INFO]:(iv_update)app tx beacon with GATT,IV index step0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    [INFO]:(iv_update)secure NW beacon:17 2b 01 00 b7 2c 94 37 e4 64 23 df 00 00 00 00 95 96 14 c8 e7 ca 58 65 
    [LIB]:(sdk)set filter type 0 
    [LIB]:(sdk)tx upper_ctl,sno:0x1 op:0x3,dst:0x0 par:00 00 00 
    [LIB]:(sdk)add filter adr part 00 01 ff ff 
    [LIB]:(sdk)tx upper_ctl,sno:0x2 op:0x3,dst:0x0 par:00 00 02 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(1)=ff 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x0880,par_len:1,par:ff 
    [LIB]:(sdk)mesh tx NoAck,op:0x02,src:0x0026,dst:0x0001,par_len:71 par:00 11 02 05 00 33 33 69 00 07 00 00 00 0e 01 00 00 02 00 03 00 00 10 02 10 04 10 06 10 07 10 00
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(19)=00 00 00 f0 12 a9 36 80 bc 9d e3 5f fc b4 fc 1a 18 2b c7 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x0000,par_len:19,par:00 00 00 f0 12 a9 36 80 bc 9d e3 5f fc b4 fc 1a 18 2b c7 
    [LIB]:(sdk)mesh tx NoAck,op:0x0380,src:0x0026,dst:0x0001,par_len:4 par:00 00 00 00 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 02 00 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 02 00 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 02 00 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 03 00 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 03 00 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 03 00 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 00 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 00 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 00 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 02 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 02 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 02 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 04 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 04 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 04 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 06 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 06 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 06 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 07 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 07 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 07 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 00 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 00 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 00 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 01 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 01 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 01 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 03 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 03 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 03 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 04 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 04 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 04 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 07 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 07 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 07 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=26 00 00 00 08 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:26 00 00 00 08 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 26 00 00 00 08 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(8)=26 00 00 00 11 02 00 00 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:8,par:26 00 00 00 11 02 00 00 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:9 par:00 26 00 00 00 11 02 00 00 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=27 00 00 00 02 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:27 00 00 00 02 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 27 00 00 00 02 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=27 00 00 00 06 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:27 00 00 00 06 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 27 00 00 00 06 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=28 00 00 00 02 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:28 00 00 00 02 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 28 00 00 00 02 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=28 00 00 00 0a 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:28 00 00 00 0a 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 28 00 00 00 0a 13 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=29 00 00 00 02 10 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:29 00 00 00 02 10 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 29 00 00 00 02 10 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(6)=29 00 00 00 0b 13 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x3d80,par_len:6,par:29 00 00 00 0b 13 
    [LIB]:(sdk)mesh tx NoAck,op:0x3e80,src:0x0026,dst:0x0001,par_len:7 par:00 29 00 00 00 0b 13 
    

    4.3 关闭LED日志

    • op:0x0282,generic mode:G_ONOFF_SET
    • par:00 01,主要看第一个参数:00代表关闭,第二个参数只是一个递增序号。
    [2021-04-02 14:29:19.860]
    RX:[USER]:(USER)mesh_rc_data_layer_access_cb, params(2)=00 01 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x0282,par_len:2,par:00 01 
    [LIB]:(sdk)mesh tx NoAck,op:0x0482,src:0x0026,dst:0x0001,par_len:3 par:01 00 0a 
    [INFO]:(mesh)mesh_tx_access_key_get:print index part0,0,0  
    

    4.4 打开LED日志

    • op:0x0282,generic mode:G_ONOFF_SET
    • par:01 02,主要看第一个参数:01代表打开,第二个参数只是一个递增序号。
    [2021-04-02 14:29:44.011]
    RX:[USER]:(USER)mesh_rc_data_layer_access_cb, params(2)=01 02 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x0282,par_len:2,par:01 02 
    [LIB]:(sdk)mesh tx NoAck,op:0x0482,src:0x0026,dst:0x0001,par_len:3 par:00 01 0a 
    [INFO]:(mesh)mesh_tx_access_key_get:print index part0,0,0  
    

    4.5 LED调光日志

    • op:0x7782,light hsl model:LIGHT_HSL_SET_NOACK
    [2021-04-02 14:30:40.290]
    RX:[USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=b0 b0 ec 59 ff ff 03 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:b0 b0 ec 59 ff ff 03 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=b0 b0 ec 59 ff ff 04 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:b0 b0 ec 59 ff ff 04 
    
    [2021-04-02 14:30:50.301]
    RX:[USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=b6 b6 13 fd ff ff 05 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:b6 b6 13 fd ff ff 05 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=b6 b6 13 fd ff ff 06 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:b6 b6 13 fd ff ff 06 
    
    [2021-04-02 14:30:55.719]
    RX:[USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=c2 b5 71 fc 51 f8 07 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:c2 b5 71 fc 51 f8 07 
    [USER]:(USER)mesh_rc_data_layer_access_cb, params(7)=c2 b5 71 fc d6 a3 08 
    [LIB]:(sdk)rcv access layer,retransaction:0,ttl:10,src:0x0001,dst:0x0026 op:0x7782,par_len:7,par:c2 b5 71 fc d6 a3 08 
    

    觉得好,就一键三连呗(点赞+收藏+关注)

    展开全文
  • rk3288之释放打印log串口

    千次阅读 2016-12-19 14:42:20
    rk3288释放打印log串口
  • 在下列位置添加:%Y%M%D_%h:%m:%s 此时通过串口还是没办法看到时间点,只能在你保存的文本中看大log的时间点。 打开保存的文本:
  • 作为工程师,在代码调试时难免需要通过log查看问题,或者debug,但是但是st官方的NUCLEO板子都是STLINK调试,无JLINK,当手头又没有JLINK时就只能选择用串口调试了,那么如何配置串口调试呢,这就是今天要写的。...
  • Android 9.0 MTK8765 uart串口打印log信息 mtk uart串口信息是包含pl lk kernel层log信息 本次项目的包含两组uart口 uart0,uart1客户要使用uart用于通信功能 1 配置好GPIO口信息 1)配置dts文件 查看原理图和GPIO...
  • Android 9.0 MTK8765uart串口打印log信息

    千次阅读 2019-03-28 15:37:52
    Android 9.0 MTK8765 uart串口打印log信息 mtk uart串口信息是包含pl lk kernel层log信息 本次项目的包含两组uart口 uart0,uart1客户要使用uart用于通信功能 1 配置好GPIO口信息 1)配置dts文件 查看原理图和...
  • 一文了解串口打印

    千次阅读 2020-11-10 09:16:34
    有些环境不方便连接Jlink进行硬件仿真,或者并不是必现的问题,我们需要定位出现问题的地方,可以选择保存log的方式,但是需要后续读取,且受到Flash大小的限制,如果可以放置一台计算机到现场,使用串口打印无疑是...
  • 如何修改串口打印等级 1,不擦除式修改,关机可保存 修改工厂版本的xxx.dts文件(如展讯9850,native版本,就是9850-native.dts),修改bootargs的参数中level,8是最大等级,一般7够用了(开机也不会被擦除) 2,暂时性...
  • 1、 Esp8266之 搭建开发环境,开始一个“hellow world”串口打印。 2、 Esp8266之 利用GPIO开始使用按钮点亮你的“第一盏灯”。 3、 Esp8266之 利用 “软件定时器 ” 定时0.5秒闪烁点亮一盏LED。 4 、Esp8266之 ...
  • 免分提供 串口终端vc源代码. ARM, MIPS串口调试打印语句用软件的源代码 (三星S3C2410微处理器, MIPS等用) USB 下载器上位机程序及 VC 源码包 含库头文件以及库 eb
  • 串口打印函数-printf_debug_log 记录一下自己常用的串口打印函数,常用语抓包分析。 void printf_debug_log(uint8_t *buff, uint32_t len,bool flag) { static uint32_t print_cnt = 0; if(print_cnt ==0) { if...
  • linux系统连接串口工具打印log

    千次阅读 2015-07-24 16:43:50
    串口线一条、手机一个 2.步骤 1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令: dmesg 2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0” 3然后安装串口抓取软件,进入...
  • 在嵌入式系统中,通过串口打印log是非常重要的调试手段,但是直接调用底层驱动打印信息非常不方便,在c语言中一般使用printf打印基本的显示信息,而默认printf的结果不会通过串口发送,所以需要对printf的输出进行...
  • CCS需要打开串口打印时需要添加的代码
  • 做嵌入式硬件同事应该都遇到过查看设备串口打印信息,有时打印的内容太多,总是找不到自己关注的log,因此花了一下午设计了这个简单的具备二次过滤功能的串口工具SerialTools,因我本身不是做软件开发的,只为实用...
  • 打开android串口打印

    千次阅读 2018-06-26 14:40:40
    \system\core\rootdir\init.rc service console /system/bin/sh class core console disabled user root group shell log readproc seclabel u:r:shell:s0 on property:ro.debuggab...
  • nrf51822的普通gpio实现串口打印功能。串口波特率是9600 停止位1 数据位8 无校验 。
  • 串口打印乱码问题处理

    千次阅读 2019-11-05 22:56:41
    这个文件中串口打印输出正常 这里乱码 解决方式 一开始使用sourceinsight打开查看编码的,其实不用的(当然这时后话) 以上说明两个文件编码不同! 对于正常打印的文件,其编码为GB2312 通过编码转换,发现...
  • 在工作过程中发现,用于串口打印的串口有两种区分,分别有速率和电压上的区分。从速率上来讲,有些PL2303的串口头打印串口log在使用921600速率时,会出现乱码,而使用115200的速率就没有乱码。而有些串口头使用...
  • 拿到设备,其串口打印为乱码,且无法输入 查找资料可知,RK3399只支持波特率为115200与1500000, 在文件 rk3399-android.dtsi中查看波特率的具体值 fiq_debugger: fiq-debugger { compatible = "rockchip,fiq-...
  • NORDIC串口打印

    2018-10-26 16:24:38
    1,打开宏定义 ENABLE_DEBUG_LOG_SUPPORT 2,配置RX,TX 3,调用初始化app_trace_init 4,开始使用printf  
  • ESP32 Arduino 串口打印

    千次阅读 2019-11-01 15:17:44
    ESP32有三个串口串口0,串口1,串口2. 首先先打开ESP32关于串口的库函数相关文件,先看看接口 在HardwareSerial.cpp中只构造了serial0这个对象 ...故使用串口0打印,编程 使用串口...
  • 使用串口打印系统时间

    千次阅读 2018-04-12 13:55:19
    今天无意中看到一段代码,感觉有点意思,验证了一下,居然真的可以实现,就是在系统中通过串口打印出系统下载程序的时间,在文件中添加头文件,#include &lt;stdio.h&gt;,在文件串口打印的时候加上一句 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,057
精华内容 4,822
关键字:

串口打印log