IAR开发环境使用串口printf输出(基于STM8L15x系列单片机)

发布者:未来架构师最新更新时间:2018-05-31 来源: eefocus关键字:IAR  开发环境  串口printf输出  STM8L15x系列 手机看文章 扫描二维码
随时随地手机看文章

这里我们以STM8L15x系列单片机使用ADC内部参考电压测量VDD电压并将电压值value通过窗口打印为例编写程序,相关的adc配置可参见另一篇博客http://blog.csdn.net/m0_37973607/article/details/77141756(STM8L使用ADC内部参考电压通道测量VDD电压)

usart.h头文件:

#ifndef _usart_H
#define _usart_H
#include "stm8l15x.h"
void Usart_Init(void);
#endif

usart.c源文件:

#include "usart.h"
void Usart_Init(void)
{
        CLK_PeripheralClockConfig (CLK_Peripheral_USART1,ENABLE);    //开启USART1时钟
        USART_Init(USART1,9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_Mode_Tx);                 //USART初始化,波特率9600,8位数据长度,1位停止位,无校验位,发送模式

        USART_Cmd (USART1,ENABLE);//使能USART1
}

#include "stm8l15x.h"
#include "adc.h"
#include "usart.h"
#include "stdio.h"
int putchar(int data)  
{  
      USART_SendData8(USART1,(u8)data);  //发送8位数据
     while(!USART_GetFlagStatus (USART1,USART_FLAG_TXE));//等待发送完毕
     return data;  
}  

int main( void )
{
    u16 adc1_value=0;
    float value=0;
    Adc_Init(); 
    Usart_Init();
    while(1)
    {
         ADC_SoftwareStartConv(ADC1); //开启软件转换
         while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待转换结束
         ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//清除对应标志
         adc1_value=ADC_GetConversionValue(ADC1); //获取转换值
         value=1.225*4096/adc1_value; //单位V
          printf("ad=%fV\r\n",value);   

    }
}

IAR用printf输出与keil设置不太一样,首先当然先要包含头文件"stdio.h",然后改写putchar函数

在IAR开发环境中进行如下配置:

(1)右击Demo-Debug选择option




(2)在Options中将Library Configuration改成Full

IAR <wbr>STM8串口printf输出

(3)在Library Options中将Printf formatter改成Large即可

IAR <wbr>STM8串口printf输出

(4)完成上述设置后编译整个工程,然后下载程序到STM8L15x板子中并进入到Debug调试环境中,点击View->Terminal I/O调出虚拟终端,然后全部运行,就可以在Terminal窗口中看到打印信息


关键字:IAR  开发环境  串口printf输出  STM8L15x系列 引用地址:IAR开发环境使用串口printf输出(基于STM8L15x系列单片机)

上一篇:STM8L的printf函数实现
下一篇:msp430的printf函数的简单移植

推荐阅读最新更新时间:2024-03-16 16:03

IAR Systems宣布扩展RISC-V开发工具
IAR Systems宣布扩展其针对RISC-V的开发工具链IAR Embedded Workbench。日前,IAR宣布SiFive Insight实现了对跟踪的支持,这是业界第一个针对开放规范RISC-V ISA的预集成跟踪和调试解决方案。 对安全性的要求和对许多标准的测试允许扩展,通过实时代码覆盖和程序运行时的更新,Workbench将允许开发人员更有效地提高代码质量。 “随着IAR Embedded workbench对RISC-V的扩展跟踪支持,我们将把经过验证的跟踪查看器基础设施引入到RISC-V生态系统中。”IAR Systems的产品经理Thomas Andersson在新闻稿中说道:“我们一直与SiFiv
[嵌入式]
OK6410A 开发板 (八) 2 linux-5.11 OK6410A linux开发环境搭建
代码 : https://github.com/lisider/linux/tree/ok6410a-linux-5.11 提交id : 4459e78a4d845f08286623b98546bcefbb45ddb9 defconfig : arch/arm/configs/ok6410A_sdboot_mini_net_defconfig 要实现 u-boot tftp uImage uImage 网络挂载 根文件系统 1 TFTP服务器与客户端的安装 2 NFS服务器的安装 3 内核的配置 $ cat arch/arm/configs/ok6410A_sdboot_mini_defconfig
[单片机]
如何有效使用RISC-V的跟踪技术
在嵌入式软件开发中,利用完整的应用跟踪,可为开发人员分析其产品行为提供无限的可能性。通过对应用程序的全面了解,他们可以跟踪每一条指令,看看他们的应用程序是否按照预期运行,或者是否出现错误或漏洞。那么,如何才能最大化地利用现有可用的RISC-V跟踪呢? 什么是跟踪? 与传统的通过设置断点、printf等进行调试相比,跟踪更像是在不打扰的情况下观察你的应用程序。基本上,开发人员可以在不干扰程序的情况下观察整个程序的工作情况。跟踪包括完整的指令执行流程(不需要printf也不需要UART),一旦跟踪数据被捕获,你可以快速追溯,并隔离异常和硬故障。 这使得寻找那些罕见的、依赖于执行顺序的漏洞变得更加容易,因为这提供了一串线索
[嵌入式]
如何有效使用RISC-V的跟踪技术
MPLABXIDE开发环境
项目需要,安装了MPLAB X IDE,下面记录。 安装MPLAB除了本身的IDE外,还需要安装JAVA6.1开发环境,以及C编译器。 刚使用时发现按钮比较多,下面是常用的几个,若需要在线调试,直接按右侧的那个按钮就可以,这个按钮包含编译下载调试,调试所需要的开始暂停复位功能在下图右侧。不得不说,这个开发环境在线调试实在是烂,有时都无法调试,只能重新打开工程,重新上电,可能与下载器有关,使用的是kit3,这个和Jlink相比差远了! 当从MPLAB 8.x转到这时,可能想找到供电的选项在哪里,右键工程名字-- 属性,就可以找到,如下图所示。有时候下载时会出现一些错误,可以考虑下是否没有供电导致的。若下载时出现电压不足的
[单片机]
MPLABXIDE<font color='red'>开发环境</font>
STM32:集成开发环境IDE
嵌入式系统是一个软件和硬件相结合的计算机系统。软件代码经编写、编译、汇编、链接,生成可执行文件,然后将可执行文件加载到嵌入式系统的ROM或flash中,通过嵌入式系统的MCU来控制、检测外部的装置。 软件的编辑需要文本编辑器,编译需要编译器,汇编需要汇编器,链接需要编译器,可执行文件需要软件工具来加载文件,同时软件还需要一些函数库,中间件等。为了使开发更便捷,简单,几乎所有的MCU芯片都会有对应的集成开发环境(IDE),该环境囊括了软件开发从编辑到可执行文件的所有工具,同时还包括常用的库,调试工具,在线调试工具链等。 STM32主流的集成开发环境有两种:IAR和MDK。我在这里不想讨论哪一种IDE好,谈论这个没有意
[单片机]
STM32:集成<font color='red'>开发环境</font>IDE
IAR EW STM8 1401】 破解方法
1、打开《电子学堂 工具箱》光盘,并参考光盘内视频,安装 IAR。安装完成后,打开软件会弹出如下界面,我们暂时不管他,进行第二步。 2、拷贝破解文件夹内的四个文件,到 安装目录下 stm8bin 下,并覆盖原安装文件。 3、回到软件界面,把 license 提示框去掉。。。 4、大功告成!! 最后推荐一下我的超小 STLINK V2 仿真器! 点击购买: http://item.taobao.com/item.htm?spm=a1z10.1.w137644-251734891.14.08t0dL&id=19254547006
[单片机]
【<font color='red'>IAR</font> EW STM8 1401】 破解方法
STM8 FOR IAR 中实现绝对地址跳转
//使用函数指针来实现 typedef void(*PFUN)(void); pFun =(PFUN)0x8000; (*pFun)(); #define GotoHere(a) ((void (*)(void))a)() GotoHere(0X8000); asm( JP $8000 );
[单片机]
使用图形化的开发环境——LabView开发嵌入式系统
传统设计模式所应对的挑战 嵌入式系统正在渗入现代社会的各个方面,广泛地应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域,据统计,在美国平均每个中产阶级家庭要使用40~50个嵌入式系统。巨大的市场需求推动了嵌入式系统向更高的技术水平发展。设计师们一方面采用性能更强大的嵌入式处理器如32位、64位RISC芯片取代传统的8位、16位微处理器;另一方面嵌入式系统也由单处理器单操作系统的传统结构向混合型Multi-core系统发展,通过采用多个处理器和OS提高系统并行度来提高系统运行效能,并且设计师们往往同时采用MPU、DSP和FPGA等多种可编程器件来增强处理能力,满足应用功能的升级。 嵌入式系统复杂性的不断增加给设计师
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved