IAR瑞萨单片机开发加入printf调试函数

IAR开发环境,没有printf函数,自己百度加入了一个(http://www.cnblogs.com/codecamel/p/4686437.html),但是还是有一些问题,特别是打印多个变量时,只能够打印字符串时比较稳定,原因是因为va_arg()给了错误的返回值,故只能找寻其他的方法,今天测试了一下,新的办法步骤如下

1.关键之处,否则会出现PUTCHAR函数未定义现象。

右键点击工程选择option-> General Option->ibrary configuration中library改为full,且 General Option->library option->Printf formatter选项中选择full2

2. main.c中加入,其中使用的是串口1,注意如果提示FILE未定义,请在头文件最顶层添加#include <stdio.h>

 1 /* ---------------------------Privatefunction prototypes -----------------------------------------------*/
 2
 3 #ifdef __GNUC__
 4 /* With GCC/RAISONANCE, small printf(option LD Linker->Libraries->Small printf
 5   set to ‘Yes‘) calls __io_putchar() */
 6 #define PUTCHAR_PROTOTYPE int__io_putchar(int ch)
 7 #else
 8 #define PUTCHAR_PROTOTYPE int fputc(int ch,FILE *f)
 9 #endif /* __GNUC__ */
10
11 /**
12   *@brief  Retargets the C library printffunction to the USART.
13   *@param  None
14   *@retval None
15   */
16 PUTCHAR_PROTOTYPE
17 {
18   /*Place your implementation of fputc here */
19   /*e.g. write a character to the USART */
20  USART_SendData(EVAL_COM1, (uint8_t) ch);
21   /*Loop until the end of transmission */
22  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET);
23  return ch;
24 }

printf函数打印字符串,遇到\0时才结束。

 
时间: 2024-10-09 11:04:28

IAR瑞萨单片机开发加入printf调试函数的相关文章

六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植

2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控,虽然事后证实我的猜测是错的,但是在赛前我还是完成了相关代码的准备,这其中就包括了MPU6050的DMP库移植.在移植前我大概搜了一下,发现网上还没有相关的源代码.一起准备电赛的同学还买过一份RL78/G13的飞控代码,虽然也是使用MPU6050进行姿态获取,但是对MPU6050的读取并不是通过DMP

单片机工程加入printf函数

之前学习用的是Alientek MiniSTM32开发板,使用的开发环境可以通过特殊的配置集成printf函数,调试程序的时候不大喜欢用仿真器,最近项目开始使用单片机,只能够用UART1_Send(uint8_t * const tx_buf,uint16_t tx_num),真心有点不习惯没有printf函数的日子,程序调试的话最方便莫过于printf函数,于是开始研究如何在单片机中加入printf函数. 跟串口驱动相关的函数put_char(uint8_t data),需要根据不同的嵌入式平

树莓派、 Arduino 、传统单片机开发板该如何选择?

几十年前的电子爱好者,最喜欢的就是电烙铁.面包板和收音机:十几年前,出现了单片机,于是玩具就成了电烙铁.面包板和单片机:到了2015年,贴片技术的不断普及,让面包板不再那么有用武之地,经济的发展也让现成的板卡价格降到了一个合理的范围,购买现成的电路板,甚至自己打样电路板来使用,已经成为了一个趋势.现在,我们面前的选择就空前的丰富,一方面,是以Arduino和树莓派为首的开源硬件阵营,另一方面,则是以STM32.51和S3C2440为首的传统单片机开发板阵营.笔者根据自己的使用体验,与读者简单谈一

调试器开发实例_调试器框架设计

作为一个安全开发人员离不开调试器,它可以动态显示程序的执行过程,对于解决程序问题有极大的帮助,这些文章记录了我开发一个调试器雏形的过程,希望对你有帮助.或许我写的代码很拙劣,还请大家多多见谅! 我们使用  Microsoft Visual Studio 6.0 VC编译器来作为我们的开发工具想对一个程序进行调试,首先要做的当然是启动这个程序,这要使用CreateProcess这个Windows API来完成.例如: 1 // LilisiDebug.cpp : Defines the entry

调试器开发实例_调试器事件处理(一.事件到达)

上一章既然说到了调试循环事件,那么接下来我们该说说对调试器事件的处理了. 调试器的事件处理虽然有很多,但是并不是每一个都用得上的,接下来的文章中我们挑选一些经常用到的来给大家说说. CREATE_PROCESS_DEBUG_EVENT  创建进程之后的第一个调试事件,CREATE_PROCESS_DEBUG_INFO结构体描述了该类调试事件的详细信息. 该结构体有三个字段是句柄,分别是hFile,hProcess和hThread,同样要记得使用CloseHandle关闭它们! EXIT_PROC

瑞萨真冈朋光:中国已向技术创新国转变,日本需有清楚认识(向客户提供的众多优秀的解决方案,并不会轻易就被取代)

原标题:瑞萨电子真冈朋光:中国已向技术创新国转变,日本需有清楚认识 作为老牌日本半导体产业的龙头代表之一,瑞萨电子在全球微控制器(MCU)市场,特别是全球汽车市场长期占据着领先地位.然而近几年来随着日系半导体产业的整体衰落,瑞萨电子也在一定程度上受到了影响.为此瑞萨电子在近两年进行了一系列动作,包括收购Intersil.成立中国事业部,在中国市场要有一番新气象.这一系列改革对一家日系企业而言不可谓不巨.近日集微网独家专访了瑞萨电子株式会社高级副总裁.中国事业统括本部部长.瑞萨电子中国董事长真冈朋

单片机开发——03工欲善其事必先利其器(AD软件安装破解)

在单片机开发中,有了Keil的程序编程,Protues的模拟仿真,那么问题来了,怎么去进行电路图设计以及硬件调试呢?此刻就必须引入本文的Altium Designer (下文简称AD)安装与破解.在硬件行业,PCB的设计软件大体包括protel99se.cadence以及AD,但是军哥一直觉得AD不仅仅方便,而且很容易上手:protel99se软件在实验教学中使用的非常多(例如CDUT),cadence则应用很少(厦大).除此之外,AD设计出的PCB可以3D观看,进行元器件位置调整.布局布线等诸

JAVA card 应用开发 JCOP的调试方法

本文讲述如何在仿真环境下,调试JAVA card 的APPLET. 通过JCOP在Eclipse进行仿真调试,启动JCOP调试器,我们可以看到如下图: 要仿真调试,就是在命令输入框里面输入JCOP相关的指令,通过阅读JCOP的帮助文档,我们看到JCOP提供的命令不算繁多,大约40个. 下面我挑选常用的几个来说明: 1.      复位卡片:"/atr",如果不加任何参数,表示立即复位. 2.      发送指令:"/send",这是最直观的调试指令.可以逐个指令发送

瑞萨SCI

SCI也即serial communications interface串口通信接口 瑞萨SCI一共有六种模式 asynchronous mode 异步模式 smart card  interfaces mode 智能卡接口模式:参考链接:  http://blog.sina.com.cn/s/blog_65d6476a0101aw2n.html Simple I2C Mode简单I2C模式,所谓的简单大概就是模式是固定的single master Simple SPI Mode简单SPI模式