本文使用STM32CUBEIDE软件和STM32G070系列芯片
1.添加头文件
在工程中合适的位置添加<stdio.h>文件。
#include <stdio.h>
2.重定义_write函数
_write函数是一个弱函数,因此直接在此处重新定义即可。
int _write(int file, char *ptr, int len)
{
int DataIdx;
for (DataIdx = 0; DataIdx < len; DataIdx++)
{
/*LL库*/
while(LL_USART_IsActiveFlag_TC(USART1)!=1);
LL_USART_TransmitData8(USART1,(uint8_t)ptr[DataIdx]);
/*HAL库*/
//HAL_UART_Transmit(&huart1,(uint8_t *)(ptr+DataIdx),1,HAL_MAX_DELAY);
}
return len;
}
我这里使用的是串口一和LL库,大家根据自己的需要改一下即可。
注意:直接将上面的代码放到main.c文件里面即可,我是放在main函数后面的。不需要再前面或者头文件里面声明。
经过上面的步骤其实就可以直接使用printf函数了,但是STM32CUBEIDE里的默认设置是不能在printf函数里使用float类型的,需要进行一下设置。
注意:printf函数字符串最后要有一个换行符’\n’才能正常输出,如果有小伙伴知道这怎么解决可以分享一下。
3.有关float的设置
在工程文件上右键,选择Properties,弹出配置窗口,根据下图选择,在第五步时将两个方框都勾选上,然后点击Apply and Close即可。
|