电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

STM32 printf重定向VIP免费

STM32 printf重定向_第1页
1/3
STM32 printf重定向_第2页
2/3
STM32 printf重定向_第3页
3/3
在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的main文件中包含“stdio.h”(标准输入输出头文件)。2、在main文件中重定义函数如下://发送数据intfputc(intch,FILE*f){USART_SendData(USART1,(unsignedchar)ch);//USART1可以换成USART2等while(!(USART1->SR&USART_FLAG_TXE));return(ch);}//接收数据intGetKey(void){while(!(USART1->SR&USART_FLAG_RXNE));return((int)(USART1->DR&0x1FF));}这样在使用printf时就会调用自定义的fputc函数,来发送字符。3、在工程属性的“Target"->"CodeGeneration"选项中勾选"UseMicroLIB"”MicroLIB是缺省C的备份库,关于它可以到网上查找详细资料。至此完成配置,在工程中可以随意使用printf向串口发送数据了。二、第二种方法是在工程中添加“Regtarge.c”文件1、在main文件中包含“stdio.h”文件2、在工程中创建一个文件保存为Regtarge.c,然后将其添加工程中在文件中输入如下内容(直接复制即可)#include#include#pragmaimport(__use_no_semihosting_swi)externintSendChar(intch);//声明外部函数,在main文件中定义externintGetKey(void);struct__FILE{inthandle;//Addwhateveryouneedhere};FILE__stdout;FILE__stdin;intfputc(intch,FILE*f){return(SendChar(ch));}intfgetc(FILE*f){return(SendChar(GetKey()));}void_ttywrch(intch){SendChar(ch);}intferror(FILE*f){//YourimplementationofferrorreturnEOF;}void_sys_exit(intreturn_code){label:gotolabel;//endlessloop}3、在main文件中添加定义以下两个函数intSendChar(intch){while(!(USART1->SR&USART_FLAG_TXE));//USART1可换成你程序中通信的串口USART1->DR=(ch&0x1FF);return(ch);}intGetKey(void){while(!(USART1->SR&USART_FLAG_RXNE));return((int)(USART1->DR&0x1FF));}至此完成配置,可以在main文件中随意使用printf。

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

STM32 printf重定向

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部