|
直接上代码1、重定向printf打印的代码
- #if 1
- #pragma import(__use_no_semihosting)
- struct __FILE
- {
- int handle;
- };
- FILE __stdout;
- void _sys_exit(int x)
- {
- x = x;
- }
- int fputc(int ch, FILE *f)
- {
- UART5->TXBUF = ch;
- while (!(UART5->ISR & (0x1 << 0)));
- UART5->ISR |= (0x1 << 0);
- return ch;
- }
- #endif
复制代码 2、不使用重定向UART5_printf打印的代码,
- void UART5_printf (char *fmt, ...)
- {
- char buffer[UART5_SEND_LEN+1];
- int i = 0;
- va_list arg_ptr;
- va_start(arg_ptr, fmt);
- vsnprintf(buffer, UART5_SEND_LEN+1, fmt, arg_ptr);
- while ((i < UART5_SEND_LEN) && buffer[i])
- {
- FL_UART_WriteTXBuff(UART5, (uint8_t) buffer[i++]);
- while(FL_SET != FL_UART_IsActiveFlag_TXShiftBuffEmpty(UART5)); //等待发送完成
- }
- va_end(arg_ptr);
- }
复制代码 以上代码均是借鉴网络的,把我的成果也分享成了。完整代码
3、print.c文件完整代码
- <blockquote>#include "print.h"
复制代码
4、print.h文件完整代码
- <blockquote>#ifndef __PRINT_1_H__
复制代码
注意:一定要将UART5初始化
|
|