打印
[技术问答]

M051串口重定向怎么做

[复制链接]
333|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
antusheng|  楼主 | 2020-4-24 21:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是用putchar()重定向还是用fputc()?

使用特权

评论回复
沙发
heisexingqisi| | 2020-4-25 21:51 | 只看该作者
fputc()

使用特权

评论回复
板凳
heisexingqisi| | 2020-4-25 22:00 | 只看该作者
1. keil MDK已经为我们提供了这样的接口文件:

文件位置:C:\Keil\ARM\Startup,(C:\Keil\为我的keil安装根目录)

文件名:Retarget.c

使用特权

评论回复
地板
heisexingqisi| | 2020-4-25 22:00 | 只看该作者
/******************************************************************************/
/* RETARGET.C: 'Retarget' layer for target-dependent low level functions      */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2005 Keil Software. All rights reserved.                     */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/

#include <stdio.h>
#include <time.h>
#include <rt_misc.h>

#pragma import(__use_no_semihosting_swi)


extern int  sendchar(int ch);  /* in Serial.c */
extern int  getkey(void);      /* in Serial.c */
extern long timeval;           /* in Time.c   */


struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;


int fputc(int ch, FILE *f) {
  return (sendchar(ch));
}

int fgetc(FILE *f) {
  return (sendchar(getkey()));
}


int ferror(FILE *f) {
  /* Your implementation of ferror */
  return EOF;
}


void _ttywrch(int ch) {
  sendchar (ch);
}


void _sys_exit(int return_code) {
  while (1);    /* endless loop */
}

使用特权

评论回复
5
heisexingqisi| | 2020-4-25 22:01 | 只看该作者
因此我们的工作就是:

(1)将Retarget.c文件加入自己的工程

使用特权

评论回复
6
heisexingqisi| | 2020-4-25 22:02 | 只看该作者
提供Serial.c文件,在该文件中实现sendchar和getkey()

sendchar即为串口发送单字符函数。

使用特权

评论回复
7
jiekou001| | 2020-4-26 08:32 | 只看该作者
楼上回答正确。

使用特权

评论回复
8
jiekou001| | 2020-4-26 08:33 | 只看该作者
框架给你做好了,你只需要实现发送一个字符就行了。

使用特权

评论回复
9
yiy| | 2020-4-26 20:04 | 只看该作者
两个不同体系,所以用的不同。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

1450

帖子

5

粉丝