-
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标准库自定义串口打印 log.7z
2020-08-25 17:22:49STM32的串口打印,支持不定长参数,调试时用,可以通过一个宏定义关闭所有的调试信息,方便调试。******************************/ -
调试时串口打印log信息的宏定义
2021-06-15 10:42:08//定义串口打印 #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
-
linux系统连接串口工具打印log
2021-05-12 14:11:39步骤1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令:dmesg2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0” 3然后安装串口抓取软件,进入Ubuntu软件中心,搜索CuteCom,点击...1.准备
串口线一条、手机一个
2.步骤
1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令:
dmesg
2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0”
3然后安装串口抓取软件,进入Ubuntu软件中心,搜索CuteCom,点击安装即可。
4运行CuteCom,需要root权限,所以通过
sudo cutecom
打开后的界面如下:
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
-
ESP8266 使用串口1 打印LOG
2021-11-22 18:14:23一、Menuconfig配置 具体的位置位于Component config &...串口1初始化 打印 uart_set_baudrate(UART_NUM_1,921600);//串口1 打印921600 三、烧录 注意此修改是在boot里面进行的,所以必须要重新烧录boot!!! . -
泰凌微8258入门教程 基础篇③——调试日志Log串口打印
2021-03-29 16:27:16泰凌微8258入门教程 基础篇③——调试日志Log串口打印 -
STM32的串口重映射打印log问题
2019-10-25 16:22:17作为工程师,在代码调试时难免需要通过log查看问题,或者debug,但是但是st官方的NUCLEO板子都是STLINK调试,无JLINK,当手头又没有JLINK时就只能选择用串口调试了,那么如何配置串口调试呢,这就是今天要写的。... -
STM32L431 串口打印例程(HAL库).rar
2020-08-25 15:57:55STM32L431 串口打印例程,采用的HAL库,源代码已经多次在项目中应用,正确,可靠。便于移植。 -
TI CC265X/CC13XX 系列芯片,解决串口输出log的代码
2020-11-27 09:03:35以下针对TI simplelink SDK 的修改,在CC2652R/CC13XX/CC265X系列上验证通过。目的是解决代码调试过程中,...以zed_sw_ota_client示例代码作为参考,在zclSampleSw_Init的最后调用dbg_init(),然后在我们需要打印log。 -
泰凌微 Telink TLSR825X Printf gpio 模拟 串口 打印信息 log
2021-11-03 15:43:04如题: 使用telink可以使用printf功能,之前我不了解,我一度以为这是uart 实现... 然后删除之前的文件,重新编译生成,应该就可以打印了 这里特别注意强调信息:任何编译修改头文件配置的都需要删除之前文件重新生成。 -
串口调试工具可显示log时间戳
2020-11-23 17:11:20小巧方便的串口调试工具,带时间戳显示,可以批量保存日志,对于嵌入式设备如果串口波特率高,可以就将数据打印到串口然后保存,比如音频数据 -
高通平台printk输出log到串口
2021-01-07 03:51:521、查看当前打印级别 ... # echo 8 > /proc/sys/kernel/printk //这样串口才能打印数据 3、内核函数printk的打印级别宏定义:Include/linux/kernel.h #define KERN_EMERG /* system is unusable */ #define KERN_ALERT -
nrf51822 按键蓝牙通知 例程 加入 串口 打印 log
2018-05-09 16:27:22现在只是能够打印字符串 ,如果打印数字,或者是如何使用 printf ,需要进一步研究 实验的时候,是用在板子的 j2上介入一个miniUSB线 连接到 PC的USB口, 在PC 的win7 64位系统中,安装 cp2102的驱动,然后通过... -
python 串口读取+存储+输出处理实例
2020-12-23 09:52:33ser = 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内核调试log信息
2018-06-24 12:07:14一、前言 在调试Android的Linux内核时,我们往往会通过打开对应模块的...D:/Kernel.log 但是dmesg通常只能打印部分Log信息,如果连续输入命令,在保存的日志文件中可能会出现很多重复内容,这是因为dmesg会打印启动... -
泰凌微8258入门教程 BLE篇③——BLE Single Connection 调试日志Log串口打印
2022-03-23 23:59:00泰凌微8258入门教程 BLE篇③—— BLE Single Connection 调试日志Log串口打印 -
学习ESP8266_4_上电串口打印信息
2020-11-04 20:50:55根据手册上的介绍,打开串口助手,设置波特率为74880,复位一下,得到如下打印信息。 最后输出的乱码,并不是乱码,原因已经找到,接下来会说明。 1、第一部分,可以看到当前的状态。 boot mode后的第一个数据是3,... -
Linux debug串口的释放
2021-01-14 16:58:03文档时间:2018-10-09模块平台:EC25EFALinux的默认控制台是debug串口,想要改变控制台,首先需要释放debug...1,Aboot启动过程中会默认向debug串口打印消息,想取消这些打印信息,需要进行修改并重新编译aboot。... -
打印LOG信息到串口和输出到文件的函数
2018-08-26 00:27:29_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:49STM32 串口打印函数 #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:001.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驱动中串口打印调试函数汇总说明
2021-05-14 00:10:04驱动添加调试信息打印方法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:35user版本打开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..... -
【简单应用】STC8+串口打印
2022-04-01 09:26:08【简单应用】本系列旨在某个功能的简单应用,以...该想法源于一次急用串口打印,又一时想不来。文中所用到的库文件,后面会放有连接。 说明:该库只是简单的应用串口1通信,和定时器1作为波特率发生器。方便调整程序。 -
基于Qt实现Linux或Windows串口打印工具
2021-05-14 20:12:07打开串口首先我们需要创建一个QSerialPort对象,然后调用它的open函数打开串口设备,然后再调用它的boolsetBaudRate(qint32baudRate,Directionsdirections=AllDirections);boolsetDataBits(DataBitsdataBits);... -
RK3399 打开kernel 串口打印
2021-11-25 17:37:45由于项目开发趋于稳定(串口需要它用),因此将rk3399打印log的串口给关闭了。开机只有u-boot的部分串口打印。现在需要将串口打开,进行调试 1、修改dtsi kernel/arch/arm64/boot/dts/rockchip/rk3399-android.... -
python小工具之缤果python串口打印助手
2021-11-18 23:21:25缤果python串口打印助手支持常用的50bps - 10Mbps波特率,支持控制台打印串口log, 时间戳以及分组保存串口log功能。 中文名:缤果python串口打印助手 外文名:PySerial_Debug_Assistant 支持:常用的50bps ~ 10...