我在用stm32f107和dw1000做测距,现在希望通过串口通信打印所测距离。不知道官方自带程序中的printf2可不可以显示,或者是否需要再自己写打印函数?我可以用什么简单的输入输出测试一下串口通信是否配置成功吗?
- #include <stdio.h>
- #include <stdarg.h>
- #include <stdlib.h>
- void printf2(const char *format, ...)
- {
- va_list list;
- va_start(list, format);
- int len = vsnprintf(0, 0, format, list);
- char *s;
- s = (char *)malloc(len + 1);
- vsprintf(s, format, list);
- USART_puts(s);
- free(s);
- va_end(list);
- return;
- }
复制代码
|
怎么调用呀?在主函数里吗?那还需要再写读数据的函数吗?
评分
查看全部评分
没有用到printf,怎样重定义呢?
这样的可以吗?
#ifdef __GNUC__
/* With GCC/RAISONANCE, small debug_printf (option LD Linker->Libraries->Small debug_printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
USART_SendData(USART1, ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
{
}
return (ch);
}
评分
查看全部评分