打印

GD串口通信中使用printf发送数据配置方法(二)

[复制链接]
1213|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunmeat|  楼主 | 2014-9-26 14:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、在工程中创建一个文件保存为 Regtarge.c , 然后将其添加工程中 在文件中输入如下内容(直接复制即可) #include <stdio.h> #include <rt_misc.h>
#pragma import(__use_no_semihosting_swi)
extern int SendChar(int ch); // 声明外部函数,在main文件中定义 extern int GetKey(void); 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())); }
void _ttywrch(int ch) { SendChar (ch); }
int ferror(FILE *f) { // Your implementation of ferror return EOF; }
void _sys_exit(int return_code) { label: goto label; // endless loop }
沙发
sunmeat|  楼主 | 2014-9-26 14:30 | 只看该作者
2、在main文件中添加定义以下两个函数 int SendChar (int ch) { 
while (!(USART1->SR & USART_FLAG_TXE)); // USART1 可换成你程序中通信的串口 USART1->DR = (ch & 0x1FF); return (ch); } 
int GetKey (void) { 
while (!(USART1->SR & USART_FLAG_RXNE)); return ((int)(USART1->DR & 0x1FF)); }

使用特权

评论回复
板凳
sunmeat|  楼主 | 2014-9-26 14:30 | 只看该作者
3、 至此完成配置,可以在main文件中随意使用 printf 。

使用特权

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

本版积分规则

208

主题

2132

帖子

13

粉丝