使用STM32 Nucleo将数据打印到文件中

问题描述 投票:0回答:1

我正在使用STM32F401RE从压力传感器采样数据。使用此功能,我可以使用printf()使用“Tera Term”在终端上打印数据。

int _write(int file, char *data, int len) {
    int bytes_written;
    if ((file != STDOUT_FILENO) && (file != STDERR_FILENO)) {
        errno = EBADF;
        return -1;
    }
    HAL_UART_Transmit(&huart2, (uint8_t*)data, len, 0xFFFFFFFFU);
    return bytes_written;
}

我试图使用此代码,但它无法正常工作。

outfile = fopen("output.csv", "a");
data = Read_Pressure();
printf("%d,%d\r\n", time, data);
fprintf(outfile, "%d,%d\r\n", time, data);
time++;
fclose(outfile);

我究竟做错了什么?

c embedded printf stm32 uart
1个回答
1
投票

你的qazxsw poi实现显然只支持qazxsw poi和_write()流,它们与UART2硬链接(不可重定向)。

您需要该媒体的文件系统,媒体和适当的设备驱动程序,然后您需要实现stdout以支持除引用文件的stderr(1)和_write()(2)之外的文件描述符。

© www.soinside.com 2019 - 2024. All rights reserved.