关于IAR for stm8 printf打印不正确的问题

2020-02-28来源: eefocus关键字:IAR  stm8  printf  打印不正确的

写了一个关于红外Pyd1798的测试程序,由于原来是基于stm8L的方案,为了节约时间就没有换方案,经过几天的了解才知道stm8原来也是有库的,与stm32有异曲同工之妙。


根据Pyd1798的手册,开始写时序函数,刚开始是按Datasheet老版本的写,出来的波形还行,但一直就是打印不正确。由于还不知道写的时序对不对,所以在网上查资料,又下了一版较新的Pyd1798根据那个时序又写读函数,结果根本没有得到数据手册标的时序波形。现在才发现原来,自己用的这个Pyd1798是个老版本的。


确定不是时序问题后,就开始找原因。先看直接输出行不行?printf("%dn",100);


结果还是输出原来的值。可见是printf的问题。其实IAR一直是提示有Wanning    printf 是单独声明


原来,在头文件声明时,没有加  #include的函数。


加上后,打印一个无符号16位的数,正常,不是所谓的16位要拆开来打印。


这些弯路其实都是可以避免的,但也未尝不是件好事,通过找问题,扩展了很多的心里不知道怎么弄的东西。

关键字:IAR  stm8  printf  打印不正确的 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic489934.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8 UART初始化+printf
下一篇:IAR for STM8重定向printf

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED
1、预先安装好EWSTM8(IAR STM8)软件,全称为IAR Embedded Workbench for STMicroelectronics STM8 IDE2、下载好STM8S标准库,此处所用标准库为STM8S_StdPeriph_Lib V2.3.13、新建个文件夹(名称自定),作为项目所在文件夹,并在项目文件夹里再新建两个文件夹,此处分别命名为FWLIB和USER。(注:这两个文件夹名字可以按你们自己意思取,无限制,如可以取HWLIB、SYSLIB、MYLIB、MYAPP、MYABC、XZY等)4、将STM8S标准库(STM8S_StdPeriph_Lib V2.3.1)——Project
发表于 2020-03-08
STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED
IAR FOR STM8 学习笔记 固件库 GPIO
经过一番挣扎,还是决定使用官方的固件库了。。从网上下一个STM8S的固件库,记得是FOR IAR的。找到里面的IAR模板就可以开始用了。  这些都是直接写好的库函数,可以直接调用,但首先得先读懂,先了解些必备知识。STM8的寄存器的地址 在STM8中,与某个外围设备有关的寄存器在地址上都是顺序排列的;比如与GPIO有关的寄存器有ODR、IDR、DDR、CR1、CR2,与PA口有关的这五个寄存器就被安排在了0x00 5000~0x00 5004这5个地址空间中,它们有一个0x005000的基地址,分别偏移0,1,2,3,4。  ”stm8s.h"
发表于 2020-03-06
IAR FOR STM8 学习笔记 固件库 GPIO
AVR单片机IAR AVR C语言中断编程
一、AVRmega16中断向量表向量号 程序地址 中断源 描述 IAR AVR中的定义 1 000 RESET 外部引脚电平引发的复位,上电复位,掉电检测复位,看门狗复位,以及JTAG AVR 复位 RESET_vect 2 002 INT0 外部中断请求0 INT0_vect 3 004 INT1 外部中断请求1 INT1_vect 4 006 TIMER2 COMP 定时器/计数 2 比较匹配 TIMER2_COMP_vect 5 008 TIMER2 OVF 定时器/计数 2 溢出 TIMER2_OVF_vect 6 00A TIMER1 CAPT 定时器/计数 1事件捕捉 TIMER_ CAPT_vect 7 00C
发表于 2020-03-04
IAR6.3创建MSP430工程
打开IAR首先找到IAR的安装好的可执行EXE创建一个新的工程选择编程的芯片类型和所用的编程语言选择工程文件保存路径(.ewp文件)这就生成了工作环境了,这个时候需要写入你需要的代码并且更改设置。代码的录入就不说了,关于设置,主要设置单片机型号和debug方式或者烧录方式。设置单片机型号打开options选择自己所用的单片机型号如果用BSL下载方式就设置LinKer用JTAG仿真的设置
发表于 2020-03-03
IAR6.3创建MSP430工程
IAR for STM8重定向printf
#include <stdio.h>int fputc(int ch, FILE *f)//STM8S105,printf函数重定向 {   while (!(UART2->SR&0x80));   UART2->DR=ch;  return ch; } 同时需要修改IAR的Projec t- >Options -> General Options -> Library Configuration中的Library 项由"Normal"改为"Full"。
发表于 2020-02-28
stm8l低功耗系列
最近干刚做了一个stm8的项目用的是L低功耗系列,其中遇到一个问题。外设寄存器的值怎么都写入不进去。用IAR仿真产看寄存器的值,不论写进去多少,都是初始值。后来把所有寄存器都写了一遍,发现有的能写进去,有的写不进去。比如GPIO的寄存器就能写进去。百思不得姐,偶然查看clock的库函数发现个函数是设置外设时钟的。这个系列,亦或者整个低功耗系列的每个外设是不是都需要在时钟寄存器中单独设置时钟。(以前所使用的芯片都是在外设寄存器中使能或者是禁使能)
发表于 2020-03-09
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved