stm32多串口公用printf的问题.docx
文本预览下载声明
网上找到的资料,支持多串口printf,但编译提示:..\SYSTEM\usart\usart.c(64): error: ?#77-D: this declaration has no storage class or type specifier
PUTCHAR_POTOTYPE 该如何操作?
#include stdarg.h
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc (int ch, FILE *f)
#endif
PUTCHAR_POTOTYPE
{
USART_SendData(USART1, (u8) ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); ? ??
return ch;
}
void? USART3_printf(char *fmt, ...)
{
? char buffer[CMD_BUFFER_LEN+1];
u8 i=0;
va_list arg_ptr;
va_start(arg_ptr,fmt);
vsnprintf(buffer,CMD_BUFFER_LEN+1,fmt,arg_ptr);
while((iCMD_BUFFER_LEN) buffer[i])
{
USART_SendData(USART3, (u8)buffer[i++]);
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);
}
?? va_end(arg_ptr);
}
2012/07/15 19:11? HYPERLINK /user/profile/5.htm;jsessionid=78E1C1FA6A7185D6D6B5CDF57CD2E726 [1楼]?正点原子??
等级:?站长?
注册时间:2010/12/02 10:41?回复数: 43927?主题数: 356酷贴数:25论坛积分:47495来自: 湖南?离线?????这等于你自己重构了一个...?printf一个就够了吧,其他可以直接用写DR的方式.没发现printf不够用过...
我的淘宝小店:?
HYPERLINK javascript:quickReply(1,%E6%AD%A3%E7%82%B9%E5%8E%9F%E5%AD%90); 回复2012/07/15 22:24? HYPERLINK /user/profile/4518.htm;jsessionid=78E1C1FA6A7185D6D6B5CDF57CD2E726 [2楼]?licgang??
等级:?
注册时间:2012/06/19 11:08?回复数: 20?主题数: 5论坛积分:35离线?????现在是要用2个串口,如果不用printf函数的话,程序处理上比较麻烦,输出的格式有点多
HYPERLINK javascript:quickReply(2,licgang); 回复2012/07/15 23:06? HYPERLINK /user/profile/5.htm;jsessionid=78E1C1FA6A7185D6D6B5CDF57CD2E726 [3楼]?正点原子??
等级:?站长?
注册时间:2010/12/02 10:41?回复数: 43927?主题数: 356酷贴数:25论坛积分:47495来自: 湖南?离线?????哦,那你得找找能支持2个printf的实现方法.?
我的淘宝小店:?
HYPERLINK javascript:quickReply(3,%E6%AD%A3%E7%82%B9%E5%8E%9F%E5%AD%90); 回复2012/08/05 11:20? HYPERLINK /user/profile/4518.htm;jsessionid=78E1C1FA6A7185D6D6B5CDF57CD2E726 [4楼]?licgang??
等级:?
注册时间:2012/06/19 11:08?回复数: 20?主题数: 5论坛积分:35离线?????这两天有空研究了下printf函数,参照网上资料自己写了个模拟printf函数,这样可以方便实现多串口printf了其实printf函数最关键的就是可变参数的获取了,这里要用到s
显示全部