【APM32F402R Micro-EVB开发板测评】3,printf
我看了UART例程有printf,就高高兴兴地打开,想用一下printf.谁知根本就不是我要的printf。例程的名字叫做pintf,其实是用串口函数输出一段字符。
那自已来吧。
1,我知道得应映一下
/* Private function prototypes ********************************************/
int fputc(int c,FILE *f)
{
while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
USART_TxData(USART1,(uint8_t)c);
return c;
}
注意:重要事情说三遍,一定要加上while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
否则只打一个字符。
2,在头文件加上#include studio.h
3, MDK魔术棒微库打开
在主函数加上一句printf就行了:
SystemCoreClockUpdate();
SysTick_Config(SystemCoreClock / 1000);
printf("Hello world!!!!!\n\r");
while (1)
{
Delay();
// for(i = 0; i < sizeof(txBuf); i++)
// {
// while(USART_ReadStatusFlag(USART1, USART_FLAG_TXBE) == RESET);
// USART_TxData(USART1, txBuf);
// }
BOARD_LED_Toggle(LED2);
}
运行结果:
版主,您的这个实验是不是太简单了啊 天鹅绒之夜 发表于 2025-7-25 19:40
版主,您的这个实验是不是太简单了啊
大道置简。要那么复杂干么? ddllxxrr 发表于 2025-7-26 16:10
大道置简。要那么复杂干么?
说得有道理
{:lol:} printf函数通常需要通过串行通信接口 来实现输出。 在使用printf函数时,要注意性能和资源消耗 长字符串打印卡顿? 需要实现一个函数来发送字符串。这个函数会遍历字符串中的每个字符,并调用上面实现的字符发送函数来发送每个字符。 频繁的printf调用可能会影响程序的执行效率,特别是在性能受限的嵌入式系统中。 就是不用printf函数。要自己写,要自己写 支持浮点数打印? printf用于格式化输出还是太方便了 printf函数目前在嵌入式端不支持浮点打印吧! printf函数是标准C库中用于格式化输出的函数 printf函数是一个常用的调试工具,它可以将格式化的字符串输出到标准输出设备。 启用 MicroLIB 可使用缓冲队列 + 任务发送 是不是使用printf函数必须要启动Keil内置的MicroLib选项啊 空灵回声 发表于 2025-9-9 15:23
是不是使用printf函数必须要启动Keil内置的MicroLib选项啊
恩,应该是 将 C 标准库中的 printf 重定向到 串口
页:
[1]
2