OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6603|回复: 2

IAR 使用printf的另一种方法

[复制链接]

28

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
461
金钱
461
注册时间
2013-10-18
在线时间
72 小时
发表于 2018-9-10 22:01:12 | 显示全部楼层 |阅读模式
之前使用这一种,需要定义宏定义:_DLIB_FILE_DESCRIPTOR
[mw_shl_code=applescript,true]int fputc(int ch,FILE *f)
{
        while((LPUART1->STAT & LPUART_STAT_TC_MASK) ==0);

        LPUART1->DATA = (uint8_t)ch;

        return ch;
}[/mw_shl_code]

后发现用这个更方便些,尤其使用TCIE 中断时候,互不影响
[mw_shl_code=applescript,true]size_t __dwrite(int handle, const unsigned char *buf, size_t size)
{
    const uint8_t *data = buf;

    for (int i = 0; i < size; i++) {

        while((LPUART1->STAT & LPUART_STAT_TC_MASK) ==0);

        LPUART1->DATA = data;
    }

    return size;
}

int putchar(int ch)
{
    while((LPUART1->STAT & LPUART_STAT_TC_MASK) ==0);

    LPUART1->DATA = (uint8_t)ch;

    return ch;
}[/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2018-5-9
在线时间
164 小时
发表于 2018-9-11 11:53:51 | 显示全部楼层
iar的手册里有写,如果不使用semihost作为printf的输出,就需要在程序里自己适配_read和_write函数
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-12-12
在线时间
6 小时
发表于 2019-12-24 22:31:18 来自手机 | 显示全部楼层
为何我用IAR自带的串口printf例程打印出来都是乱码?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表