在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