1、printf和 USART_SendData稳定性都很高。
前者实现格式化字符,字符串比较有优势,后者传送单个字符和指令比较合适。
2、在复杂的串口通信协议实现中,建议printf()用作大文本及信息显示。
涉及自定义帧头+校验的通信时,用USART_SendData实现单字符及控制命令。
3、这两个占用代码量非常小,可以忽略,除非在FLASH严格的场合,目前ST的产品FLASH容量都足够大
1、如果用作调试和串口打印,建议使用printf,这是有标准C语言定义的库函数,其稳定性、兼容性和便利性都很高。 但是它归根究底是调用USART_SendData,因此效率会稍微低一点,且编译的文件会将标准库函数都编译进去(因为调用了标准库函数的头问价,编译时其编译依赖关系要求编译真个库文件)。
2、如果是串口传送文件,或者频繁做数传,建议直接USART_SendData,效率更高,或者封装成一个函数专门做个特性的发送/接受功能,效率更高,