您的位置 首页 设计

STM32下多个串口的Printf用法

STM32下多个串口的Printf用法网上讲的添加printf()到程序中一般都是这样的(简要提一下):1.配置GPIO,USART,RCC的Configuration2.勾选usbmi…

STM32多个串口Printf用法

网上讲的增加printf()到程序中一般都是这样的(扼要提一下):
1.装备GPIO,USART,RCC的Configuration
2.勾选usbmicrolib
3.在程序中增加:(头文件需求增加#include)
#ifdef__GNUC__
#definePUTCHAR_PROTOTYPEint__io_putchar(intch)
#else
#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)
#endif
PUTCHAR_PROTOTYPE
{
USART_SendData(USART1,(u8)ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
returnch;
}
很明显这个办法运用printf()只能输出到usart1,假如需求运用多个usart呢,必定不能都是用printf()。

办法如下是持续是用usart2的printf()功用:
1.装备usart2的串口装备,gpio,rccenable,跟上面相似
2.勾选usbmicrolib,跟上面相似
3.增加头文件#include,编写USART2的printf函数:
voidUSART2_printf(char*fmt,…)
{
charbuffer[CMD_BUFFER_LEN+1];//CMD_BUFFER_LEN长度自己界说吧
u8i=0;

va_listarg_ptr;
va_start(arg_ptr,fmt);
vsnprintf(buffer,CMD_BUFFER_LEN+1,fmt,arg_ptr);
while((i{
USART_SendData(USART2,(u8)buffer[i++]);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
}
va_end(arg_ptr);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/265124.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部