OpenEdv-开源电子网

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

printf重定向到LCD

[复制链接]

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-8-8
在线时间
0 小时
发表于 2013-10-8 22:42:49 | 显示全部楼层 |阅读模式
苦逼工科男
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-8-16
在线时间
2 小时
发表于 2013-10-8 22:51:27 | 显示全部楼层
有点困难啊int fputc(int ch, FILE *f) 除非这个函数自己写,但是感觉参数完全不对,所以最好的解决办法就是把自己写的void LCD_DispStr(uint16_t _usX, uint16_t _usY,  char *_ptr)这个函数定义为void printf (uint16_t _usX, uint16_t _usY,  char *_ptr)
哈哈
心若在 梦就在
回复 支持 反对

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2013-10-8 22:55:41 | 显示全部楼层
回复【2楼】s614857575:
---------------------------------
你移植了GUI???
苦逼工科男
回复 支持 反对

使用道具 举报

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-8-16
在线时间
2 小时
发表于 2013-10-8 22:57:30 | 显示全部楼层
移植过,没深入学习,感觉GUI库里面东西太多,一时半会学不过来
心若在 梦就在
回复 支持 反对

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2013-11-2 10:37:19 | 显示全部楼层
int fputc(int ch, FILE* f)
{
  static uint16_t x = 0, y = 0;

  if(ch == '\n')    //换行
  {
    x = 0;
    y += 16;
    return ch;
  }

  if(x > X_MAX - 8)  //X_MAX是宏定义, 该值为240
  {
    x = 0;           //x置零
    y += 16;         //y移至下一行
  }
  if(y > Y_MAX - 16)  //Y_MAX是宏定义, 该值是320
  {
    return ch;        //直接退出
  }

  LCD_putchar(x, y, ch, color); //打印字符ch
  x += 8;                   //跳转到下一个位置, 是否越界有上面函数判断

  return ch;
}
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-9 21:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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