Keil stm32 printf到Debug窗口】的更多相关文章

使用JlinkV8+Keil41.在main.c输入以下代码 #include <stdio.h> #define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n))) #define ITM_Port16(n) (*((volatile unsigned short*)(0xE0000000+4*n))) #define ITM_Port32(n) (*((volatile unsigned long *)(0xE00000…
定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志消息.如果需要使用DebugLogger来写日志,我们需要将它的提供者DebugLoggerProvider注册到LoggerFactory上.由于定义在Debug类型中的所有方法都是针对Debug编译模式的,所以在只有针对Debug模式编译的应用中使用DebugLogger才有意义.这里将的"De…
定义在NuGet包“Microsoft.Extensions.Logging.Debug”中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志消息.如果需要使用DebugLogger来写日志,我们需要将它的提供者DebugLoggerProvider注册到LoggerFactory上.由于定义在Debug类型中的所有方法都是针对Debug编译模式的,所以在只有针对Debug模式编译的应用中使用DebugLogger才有意义.这里将的“Debug编译模式”涉及…
STM32 printf()函数和scanf()函数重定向到串口 printf()函数和scanf()函数重定向 在学习STM32的时候,常常需要用串口来测试代码的正确与否,这时候就要要用到printf()函数或者scanf()函数,但是printf()这个函数是格式化输出到屏幕的,scanf()函数又是格式化输入(从屏幕),并不能输出到串口助手中,所以需要进行重定向. 在系统中有三个标准文件:标准输入,标准输出,标准错误. printf : 强大的格式化转换(可以将任何类型转为字符串). sc…
出处:http://www.douban.com/note/248637026/ ----------------------------------------------------------------------------------------------- 作者:prife感谢:hexlog@gmail.com--------------------------------------------------------------------------------------…
参考资料:http://www.keil.com/support/man/docs/jlink/jlink_trace_itm_viewer.htm 1.Target Options -> Debug -> Settings(JLink) -> Debug里ort选择SW模式 2.在Target Options -> Debug -> Settings(JLink) -> Trace里选择Enable 3.Core freq设为120MHz(以LPC1788为例) 4.…
接上一篇,debug出现问题 1.手动安装STM32 芯片包   Keil.STM32F1xx_DFP.2.2.0.pack; https://www.keil.com/dd2/Pack/ 百度网盘 https://pan.baidu.com/s/1nD-jm2Z81eRlJUpExQB1sQ?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid= 将下载的pack包放在   Keil11\A…
在调试过程中往往需要通过打印来看系统运行状态:在STM32平台上,打印重定向有多种实现方案:其一是编译时使用keil自带的MacroLIB,据说这个库对一些C语言基础设施做了新的实现,代码结构更加紧凑:但这种库没法取得源码,所以就不能进一步研究具体怎么实现的,很遗憾:还有一种实现方案是使用标准C(I/O)库,但这种方式下要注意修改避免使用semihosting(半主机模式),下面对两种方案做以简单说明. 方案一 使用mcrolib库: 1.首先在option里边勾选mcrolib 2.重写put…
作者:dragoniye   发布:2014-02-15 12:44   分类:硬件     抢沙发   /*******************************************KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位 在Keil C51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;printf(“Current count: %bd\n”, counter);//输出8…
简介: 窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位.在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新,那么也将产生一个 MCU 复位.这表明递减计数器需要在一个有限的时间窗口中被刷新. 看门狗是一个定时器电路,一般有一…
printf函数调用fputc int fputc(int ch, FILE *p) { USART_SendData(USART1, ch); //重定向到串口 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); return ch; } 在KEIL中使用printf要勾选"微库"…
C语言库函数中有一批"标准输入输出函数",它是以标准的输入输出设备(一般为终端设备)为输入输出对象的,其中用得比较多的是printf和scanf函数了. 在嵌入式设备中加入C语言的标准输入输出函数,对调试是很有帮助, 这样就可以通过串口来显示结果.根据Keil的帮助文档,虽然printf和scanf函数的高层部分和所使用的目标硬件没有关系,但是底层部分(物理层)却与所使用的硬件密切相关,因此在使用这两个函数之前,需先将与底层相关的程序写好(一般是串口的初始化函数),放到合适的地方. 以…
参考: 很郁闷,买来没多久的 STM32F4-DISCOVERY 就挂了? STM32F103RB   Jlink调试的时候出现flash timeout.reset the target and try it again 看完以上网友的方案后本人使用FlyMcu读芯片,内容提示芯片被锁.遂想下载一个程序试试,不想程序可以下载,然后再读芯片时已正常. 返回Keil使用ST-Link也可正常使用. 从网友结论及本人测试,些次出现“flash timeout.reset the target and…
/******************** (C) COPYRIGHT 2012 WildFire Team *************************** * 文件名 :usart1.c * 描述 :将printf函数重定向到USART1.这样就可以用printf函数将单片机的数据 * 打印到PC上的超级终端或串口调试助手. * 库版本 :ST3.5.0 ******************************************************************…
printf("\r\n this is a usart printf demo \r\n"); Use Micro LIB 需要勾选这个库 将串口定义成 printf 函数 #include <stdio.h> //重定向C库函数printf到USART1 int fputc(int ch, FILE *f) { /* 发送一个字节数据到USART1 */ USART_SendData(USART1, (uint8_t) ch); /*等待发送完毕 */ while (U…
一.独立看门狗和窗口看门狗 看门狗:单片机系统在外界的干扰下会出现程序跑飞的现象导致死循环,或者崩溃,看门狗电路就是为了避免这种情况的发生,看门狗的作用就是在一定的事件内(通过计数器实现)若没有收到喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号) 独立看门狗IWDG:独立于系统之外,因为有独立时钟30-60KHz,所以是不受系统影响的系统故障检测器,主要用于监视硬件错误. 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同.如果系统时钟不走了,这个狗也就失去了作用…
dap 可以发现设备,stlink jlink 均无法发现设备,但是都不能下载.connot enter debug mode ,发现是vdda 未连接…
直接 上图 不废话: 第二张图:  把16位 类型的数据 换成 数组 ,这样 达到 节约内存和  方便处理  缓冲区数据…
[FUNCTION] Command=/H Title=Debugger Type=SystemCommand…
使用 VSCode 给STM32配置一个串口 printf 工程 gcc 重定向 printf 和 keil 不一样. 文件准备 先从以前的工程中拷过一份串口的代码来,然后在 main 函数中初始化串口并 print 一个数据吧. 新添加的文件需要添加到 Markfile 文件中,否则编译肯定会报错的.同时为了 vscode 不报错也把 include 路径在 c_cpp_properties.json 中放一份. .h 文件路径 -> Makefile + c_cpp_properties.j…
上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil提供各种窗口如输出窗口.观察窗口.存储器窗口.反汇编窗口.串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用. 一.程序调试时的常用窗口 Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows).观察窗口(Watch&Call Statck Windows).存储器窗口(Memory Window).反汇编窗口(Dissambly Window)串行窗口(Serial Wi…
在keil中printf默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,摘抄原因如下: 1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1.如果为1则清0,然后送出一个字符.因此你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1.这时你的程序就相当于直接死掉了.你可以通过改写putchar函数实现自己的目的.TI相当于是初始化~…
转自:http://blog.csdn.net/it1988888/article/details/8821713 在keil中printf默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,摘抄原因如下: 1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1.如果为1则清0,然后送出一 个字符.因此你如果直接使用printf函数,你的程序就会在putchar函…
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过汇编语言后再使用C来开发,体会更加深刻.Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面.另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解.在开发大型软件时更能体现高级语…
KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者看很多教程都是一头雾水,这个相对简单的教程.KEIL C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度.C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器.uVision2 IDE可为它们提供单一而灵活的开发环境. Keil C51 软件是众多单片机应用开发的优秀软件之一…
1.KEIL中的指针: 基于存储器的指针:数据类型 [指向存储区]  *[ 指针存储区]指针变量 char xdata * px //px本身存在于自动分配的空间,一般位于data中,指向的内容位于xdata char xdata * data px //px本身存在于data空间,指向的内容位于xdata data char xdata * px =char xdata *data px; data空间:内部ram 0-128字节 xdata空间:外部扩展ram, 用movx 及间址访问 一般…
第一章 Keil C51开发系统基本知识 第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过汇编语言后再使用C来开发,体会更加深刻.Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面.另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑…
熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始. 首先启动MDK.当然要先安装好MDK,如果找不到在哪里下载,可以翻翻我以前的博文.启动后的MDK界面如图1所示. 图1 MDK界面…
来自:http://blog.csdn.net/zhzht19861011/article/details/5846510 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始.   首…
Keil IDE指南(转载) 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例,详细的写一下MDK的设置.界面.工具.可能会有些杂乱,但我想所涉及的东西都是最常用的:可能不是那么的严谨清晰,我想谁也没把我期望成专家!哈,有问题欢迎留言.正式开始.   首先启动MDK.当然要先安装好MDK,如果找不到在哪里下载,可以翻翻我以前的博文.启动后的MDK…