【原创】STM32 Printf函数实现方法

上传人:油条 文档编号:12449916 上传时间:2017-09-04 格式:PDF 页数:4 大小:141.08KB
返回 下载 相关 举报
【原创】STM32 Printf函数实现方法_第1页
第1页 / 共4页
【原创】STM32 Printf函数实现方法_第2页
第2页 / 共4页
【原创】STM32 Printf函数实现方法_第3页
第3页 / 共4页
【原创】STM32 Printf函数实现方法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《【原创】STM32 Printf函数实现方法》由会员分享,可在线阅读,更多相关《【原创】STM32 Printf函数实现方法(4页珍藏版)》请在金锄头文库上搜索。

1、【原创】STM32Printf函数实现方法2012-04-3019:30:2|分类:stm32|字号大中小订阅今天调试了stm32f407的ADC,一切顺利,然而用串口发送ADC结果时都是16进制数,看着很不爽。于是打算用用牛B的“printf”函数,按照以前的做法,在main文件中添加了“stdio.h”,写好了“printf”函数,沏杯茶,打算边品茶边坐等结果,然而这一坐竟坐了半天也没见结果。一调试发现程序停在了printf函数处,百思不得其解,百度之,得答案,不敢独享,分享如下:STM32串口通信中使用printf发送数据配置方法(开发环境KeilRVMDK)标签:STM32串口通信pr

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

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

4、包含“stdio.h”文件2、在工程中创建一个文件保存为Regtarge.c,然后将其添加工程中在文件中输入如下内容(直接复制即可)#include#include#pragmaiport(_use_no_semihosting_swi)extrnitSendChar(intch);/声明外部函数,在main文件中定义extrnitGetKy(void);struct_FILEinthandle;/Adwhatevryounedher;FILE_stdout;FILE_stdin;intfputc(intch,FILE*f)return(SendChar(ch);intfgetc(FILE*f

5、)return(SendChar(GetKy();void_tywrch(intch)SendChar(ch);intferor(FILE*f)/YourimplentationferorreturnEOF;void_sy_exit(intreturn_code)label:gotlabel;/endleslop3、在main文件中添加定义以下两个函数intSendChar(intch)while(!USART1-SR&USART_FLAG_TXE);/USART1可换成你程序中通信的串口USART1-DR=(ch&0x1F);return(ch);intGetKy(void)while(!USART1-SR&USART_FLAG_RXNE);return(int)(USART1-DR&0x1F);至此完成配置,可以在main文件中随意使用printf。

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号