我在用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);我做错了什么?
发布于 2018-03-01 07:24:55
您的_write()实现显然只支持stdout和stderr流,并且它们是硬链接(不可重定向)到UART2的。
您需要一个文件系统、介质和用于该介质的相应设备驱动程序,然后您需要实现_write()来支持STDOUT_FILENO(1)和STDOUT_FILENO(2)以外的文件描述符(它们引用文件)。
https://stackoverflow.com/questions/49029591
复制相似问题