文档详情

stm32多串口公用printf的问题.docx

发布:2016-12-02约6.47千字共9页下载文档
文本预览下载声明
网上找到的资料,支持多串口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
显示全部
相似文档