KEIL中实现串口重定向
1 2 3 4 5 6 7
| #include <stdio.h> int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF); return ch; }
|
- 虚拟串口重定向CDC
修改usbd_cdc_if.c文件
1 2 3 4 5 6 7 8 9 10
| #include <stdarg.h> void usb_printf(const char *format, ...) { va_list args; uint32_t length; va_start(args, format); length = vsnprintf((char *)UserTxBufferFS, APP_TX_DATA_SIZE, (char *)format, args); va_end(args); CDC_Transmit_FS(UserTxBufferFS, length); }
|
在GCC中串口重定向
1 2 3 4 5
| int _write(int fd, char *pBuffer, int size) { HAL_UART_Transmit(&huart1, (uint8_t *)pBuffer, size, 0xff); return size; }
|
Makefile中添加float
-u _printf_float
例:# libraries
1 2 3
| LIBS = -lc -lm -lnosys LIBDIR = LDFLAGS = $(MCU) -specs=nano.specs -u _printf_float -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections
|