我在课堂上遇到了setbuf的问题,我从mbed移植到我的STM32项目中使用LCD显示方法<iframe #frame></iframe>
import * as srcDoc from 'srcdoc-polyfill';
@ViewChild('frame')
public iframe:ElementRef;
srcDoc.set(this.iframe.nativeElement, "<html><body>test</body></html>");
,这是我的构造函数:
printf
程序在到达行时停止:
Stream::Stream(void) : _file(NULL) {
/* open ourselves */
char buf[12]; /* :0x12345678 + null byte */
std::sprintf(buf, ":%p", this);
_file = std::fopen(buf, "w+");
setbuf(_file, NULL);
}
我需要帮助。
答案 0 :(得分:1)
我注意到你没有检查fopen的返回值,它可能是NULL。请注意,不需要标准文件函数执行null检查。也许您没有权限在当前目录中创建该文件?
答案 1 :(得分:0)
我很确定STM32没有实现文件系统调用,因此fopen
和朋友不会工作。如果要存储/读取数据,则需要查看MCU的非易失性存储器(NVM)或EEPROM API。遗憾的是,这在STM32 MCU之间并未标准化。