我想将数据从微比特发送到PC。所有连接正常。但是,我发现只有在事件中写入了串行写入功能的情况下,数据才被发送到计算机,例如,我使用Makecode进行以下两项工作:
function downloadImageFromCrossOrigin (blobURL) {
var xhr = new XMLHttpRequest();
xhr.open('GET', blobURL, true);
xhr.responseType = 'blob';
xhr.onload = function () {
if (this.status === 200) {
var fileReader = new FileReader();
fileReader.onload = function (e) {
var url = e.target.result;
var img = new Image();
var imgCanvas = document.createElement('canvas');
var imgContext = imgCanvas.getContext('2d');
img.onload = function () {
// Make sure canvas is as big as the picture
imgCanvas.width = img.width;
imgCanvas.height = img.height;
// Draw image into canvas element
imgContext.drawImage(img, 0, 0);
// Get canvas contents as a data URL. Use this imgAsDataURL
var imgAsDataURL = imgCanvas.toDataURL('image/png');
};
img.src = url;
};
fileReader.readAsDataURL(this.response);
}
else{
throw new Error('Failed to load from blobURL.');
}
};
xhr.send();
};
input.onButtonPressed(Button.B, () => {
serial.writeLine("data from micro:bit!")
})
但是,如果我只写这样的一行,那是行不通的:
basic.forever(function () {
serial.writeLine("data from micro:bit!")
})
我怀疑串行写入功能必须由某种东西触发,可能是回调或循环等?但是看来micropython并没有这个问题。
更多背景信息,我使用Windows 10,并且使用Node.js serialPort软件包接收消息。我不确定环境是否会影响行为。
如果能与大家分享一些经验,我非常感谢。