www.bxhh.net > stm32怎么用printF多个串口同时发送

stm32怎么用printF多个串口同时发送

1、 添加printf的头文件 #include 2、重写int fputc(int ch, FILE *f)函数 int fputc(int ch, FILE *f); 函数 int fputc(int ch, FILE *f) { USART_SendData(USART1, (uint8_t) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESE...

可以,配置完两个串口后,去修改接口函数就行。如下: int fputc(int ch, FILE *f){ while((USART1->ISR&0X40)==0); USART1->TDR=(uint8_t)ch; while((USART2->ISR&0X40)==0); USART2->TDR=(uint8_t)ch; return ch;}这样就可以同时输出一样的内...

这个需要通过STM32的串口。 ①如果你的上位机是电脑,那么需要一个USB转TTL,TTL端接STM32串口。 ②编写STM32串口驱动(这个很容易的,配置引脚和串口) ③通过标准库的printf或自己编写printf与串口驱动对接。 我以前做智能小车写了一份串口驱动,...

可以使用USART-DMA_TX这个功能,用DMA来实现快速printf。 一看头像就是济南的吧。

大哥,printf 跟 USART_SendData 发送数据的格式是不一样的,printf是格式化输出,而 USART_SendData 发出来的是字符串类型,you known?我想你应该明白了吧!

关注这个问题

格式声明后面加\n就好了埃。。 比如 打印部分 int a=3,b=4; printf(“%d\n”,a); printf(“%d\n”,b); 串口助手显示就是 a b

工程属性中的Target项中的Code Generation 选择 UseMicroLIB。 即可使用printf进行串口输出。 库函数版本的: 如果使用的是MDK,请在工程属性的“Target“-》”CodeGeneration“中勾驯Use MicroLIB“ 进行如上设置后编译一下,串口输出正确的数据。

找到fputc()这个函数,函数里面用哪个发就是哪个,可以随意改写,比如让两个串口同时打印

#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(...

网站地图

All rights reserved Powered by www.bxhh.net

copyright ©right 2010-2021。
www.bxhh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com