STM32 printf重定向.docx

上传人:11****ws 文档编号:3259935 上传时间:2019-05-27 格式:DOCX 页数:4 大小:15.39KB
下载 相关 举报
STM32 printf重定向.docx_第1页
第1页 / 共4页
STM32 printf重定向.docx_第2页
第2页 / 共4页
STM32 printf重定向.docx_第3页
第3页 / 共4页
STM32 printf重定向.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、在 STM32 串口通信程序中使用 printf 发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入 main 主函数,其实只要简单的配置一下就可以了。下面就说一下使用 printf 需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的 main 文件中 包含“stdio.h” (标准输入输出头文件)。2、在 main 文件中重定义函数 如下:/ 发送数据int fputc(int ch, FILE *f)USART_SendData(USART1, (unsigned char) ch);/ USART1 可以换成 USART2

2、 等while (!(USART1-SR return (ch);/ 接收数据int GetKey (void) while (!(USART1-SR return (int)(USART1-DR 这样在使用 printf 时就会调用自定义的 fputc 函数,来发送字符。3、在工程属性的 “Target“ - “Code Generation“ 选项中勾选 “Use MicroLIB“” MicroLIB 是缺省 C 的备份库,关于它可以到网上查找详细资料。至此完成配置,在工程中可以随意使用 printf 向串口发送数据了。二、第二种方法是在工程中添加“Regtarge.c”文件1、在 ma

3、in 文件中包含 “stdio.h” 文件2、在工程中创建一个文件保存为 Regtarge.c , 然后将其添加工程中在文件中输入如下内容(直接复制即可)#include #include #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(in

4、t 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 ferrorreturn EOF;void _sys_exit(int return_code) label: goto label; / endless loop3、在 main 文件中添加定义以下两个函数int SendChar (int ch) while (!(USART1-SR / USART1 可换成你程序中通信的串口USART1-DR = (ch return (ch);int GetKey (void) while (!(USART1-SR return (int)(USART1-DR 至此完成配置,可以在 main 文件中随意使用 printf 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。