精华内容
下载资源
问答
  • 2016-12-06 10:51:28

    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
    
    
    展开全文
  • 步骤1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令:dmesg2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0” 3然后安装串口抓取软件,进入Ubuntu软件中心,搜索CuteCom,点击...

    1.准备

    串口线一条、手机一个

    2.步骤

    1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令:

    dmesg

    2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0”

    0818b9ca8b590ca3270a3433284dd417.png

    3然后安装串口抓取软件,进入Ubuntu软件中心,搜索CuteCom,点击安装即可。

    4运行CuteCom,需要root权限,所以通过

    sudo cutecom

    打开后的界面如下:

    0818b9ca8b590ca3270a3433284dd417.png

    5在上图位置1,填入/dev/ttyUSB0,位置2选最大参数921600

    6准备工作就完毕了,点击Open device按钮,工具开始等待设备接入

    7将手机连上串口线,点击开机按钮,位置3中就会将串口log打印出来

    8如果需要保存,可以勾选位置4,点击后面的“…”按钮可以选择存储路径。也可以直接在位置3通过复制粘贴操作进行。

    3.注意事项

    有些手机的串口log是没有打开的,那么就无法抓取得到。串口log一般都在开机后不再输出(影响性能),因此常用于分析开机log。

    http://www.th7.cn/system/lin/201503/94135.shtml

    展开全文
  • 一、Menuconfig配置 具体的位置位于Component config &...串口1初始化 打印 uart_set_baudrate(UART_NUM_1,921600);//串口1 打印921600 三、烧录 注意此修改是在boot里面进行的,所以必须要重新烧录boot!!! .

    一、Menuconfig配置

    1. 具体的位置位于Component config > Common ESP-related
      在这里插入图片描述

    二、程序修改

    	///>串口0初始化 数据交互 
    	uart_set_baudrate(UART_NUM_0,115200);//串口0 数据
    	///>串口1初始化 打印
    	uart_set_baudrate(UART_NUM_1,921600);//串口1 打印921600
    

    三、烧录

    1. 注意此修改是在boot里面进行的,所以必须要重新烧录boot!!!
    展开全文
  • 泰凌微8258入门教程 基础篇③——调试日志Log串口打印
  • 作为工程师,在代码调试时难免需要通过log查看问题,或者debug,但是但是st官方的NUCLEO板子都是STLINK调试,无JLINK,当手头又没有JLINK时就只能选择用串口调试了,那么如何配置串口调试呢,这就是今天要写的。...
  • STM32L431 串口打印例程,采用的HAL库,源代码已经多次在项目中应用,正确,可靠。便于移植。
  • 以下针对TI simplelink SDK 的修改,在CC2652R/CC13XX/CC265X系列上验证通过。目的是解决代码调试过程中,...以zed_sw_ota_client示例代码作为参考,在zclSampleSw_Init的最后调用dbg_init(),然后在我们需要打印log
  • 如题: 使用telink可以使用printf功能,之前我不了解,我一度以为这是uart 实现... 然后删除之前的文件,重新编译生成,应该就可以打印了 这里特别注意强调信息:任何编译修改头文件配置的都需要删除之前文件重新生成。
  • 小巧方便的串口调试工具,带时间戳显示,可以批量保存日志,对于嵌入式设备如果串口波特率高,可以就将数据打印串口然后保存,比如音频数据
  • 1、查看当前打印级别 ... # echo 8 > /proc/sys/kernel/printk //这样串口才能打印数据 3、内核函数printk的打印级别宏定义:Include/linux/kernel.h #define KERN_EMERG /* system is unusable */ #define KERN_ALERT
  • 现在只是能够打印字符串 ,如果打印数字,或者是如何使用 printf ,需要进一步研究 实验的时候,是用在板子的 j2上介入一个miniUSB线 连接到 PC的USB口, 在PC 的win7 64位系统中,安装 cp2102的驱动,然后通过...
  • ser = serial.Serial("COM6", 115200, bytesize = 8,timeout=0.5) # 打开串口 print("我要开始了:") res=[] while (1): ch = ser.readline(1) result = '' hLen = len(ch) for i in range(hLen): hv
  • Secure CRT串口工具log打印时间点

    千次阅读 2021-06-22 14:48:23
    在下列位置添加:%Y%M%D_%h:%m:%s 此时通过串口还是没办法看到时间点,只能在你保存的文本中看大log的时间点。 打开保存的文本:
  • 一、前言 在调试Android的Linux内核时,我们往往会通过打开对应模块的...D:/Kernel.log 但是dmesg通常只能打印部分Log信息,如果连续输入命令,在保存的日志文件中可能会出现很多重复内容,这是因为dmesg会打印启动...
  • 泰凌微8258入门教程 BLE篇③—— BLE Single Connection 调试日志Log串口打印
  • 根据手册上的介绍,打开串口助手,设置波特率为74880,复位一下,得到如下打印信息。 最后输出的乱码,并不是乱码,原因已经找到,接下来会说明。 1、第一部分,可以看到当前的状态。 boot mode后的第一个数据是3,...
  • Linux debug串口的释放

    2021-01-14 16:58:03
    文档时间:2018-10-09模块平台:EC25EFALinux的默认控制台是debug串口,想要改变控制台,首先需要释放debug...1,Aboot启动过程中会默认向debug串口打印消息,想取消这些打印信息,需要进行修改并重新编译aboot。...
  • _tcscat(wzLogFileName,TEXT("log")); wcstombs(szLogFileName,wzLogFileName,MAX_PATH); free(wzLogFileName); FILE *fp=fopen(szLogFileName,"a"); free(szLogFileName); if(fp!=NULL) { va_list va; va_...
  • stm32 串口打印函数

    2021-03-08 10:13:49
    STM32 串口打印函数 #include <stdarg.h> #include "main.h" #include "string.h" #include "usart.h" #include "usart_printf.h" #define TXBUF_SIZE_MAX 100 //串口输出 void usart_printf(UART_...
  • 串口打印日志配置

    2015-10-21 16:35:00
    1.sudo minicom -s A Serial Device :/dev/ttyUSB0 B Lockfile Location :/var/lock C Callin Program: D Callout Program: E Bps/Par/Bits: :921600 8N1 ...F Hardware Flow Control :...
  • 驱动添加调试信息打印方法linux驱动中串口打印函数主要有3类,分别为printk、pr_xxx、dev_xxx。下面分别介绍这三种。1. printkprintk和应用层下的printf的区别是在参数最前面多了一个宏,宏如下:#define KERN_...
  • 一文了解串口打印

    千次阅读 2020-11-10 09:16:34
    有些环境不方便连接Jlink进行硬件仿真,或者并不是必现的问题,我们需要定位出现问题的地方,可以选择保存log的方式,但是需要后续读取,且受到Flash大小的限制,如果可以放置一台计算机到现场,使用串口打印无疑是...
  • android中打开串口打印

    2021-06-04 06:04:35
    user版本打开uart如何在user版本中使用串口(uart)bootable/bootloader/lk/app/mt_boot/mt_boot.c 1234512345582 #ifdef USER_BUILD583 sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1");584 #else585 sp.....
  • 【简单应用】本系列旨在某个功能的简单应用,以...该想法源于一次急用串口打印,又一时想不来。文中所用到的库文件,后面会放有连接。 说明:该库只是简单的应用串口1通信,和定时器1作为波特率发生器。方便调整程序。
  • 打开串口首先我们需要创建一个QSerialPort对象,然后调用它的open函数打开串口设备,然后再调用它的boolsetBaudRate(qint32baudRate,Directionsdirections=AllDirections);boolsetDataBits(DataBitsdataBits);...
  • 由于项目开发趋于稳定(串口需要它用),因此将rk3399打印log的串口给关闭了。开机只有u-boot的部分串口打印。现在需要将串口打开,进行调试 1、修改dtsi kernel/arch/arm64/boot/dts/rockchip/rk3399-android....
  • 缤果python串口打印助手支持常用的50bps - 10Mbps波特率,支持控制台打印串口log, 时间戳以及分组保存串口log功能。 中文名:缤果python串口打印助手 外文名:PySerial_Debug_Assistant 支持:常用的50bps ~ 10...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,578
精华内容 5,431
关键字:

串口打印log

友情链接: autopassword.rar