我在理解术语串行和流之间的区别时遇到了很多麻烦。Serial 不是 Stream 的一种吗?
我对家庭作业有一些我不明白的问题。
计算机通过使用(流还是串行?)来“读取”它们相互发送的数据以确定每个字节的含义?
此外,也Serial.write()让我很困惑。它返回一个字节的数据,对吗?一个字节是 8 位。因此,如果Serial.write()在 Arduino 上传递一个 int 类型(16 位),它会向串行流返回 2 个字节吗?
类似地,如果 Arduino C 中的变量是 unsigned long,我们如何使用 将这个变量的最高有效字节表示给串行流Serial.write()?
例如,我有变量 x 作为 unsigned long。将Serial.write(x>>8)是正确的答案,因为 long 是 32 位,所以无符号使其大两倍。由于Serial.write()以字节为单位返回,因此 64/8 将是 8。
所有这些问题可能看起来都很业余,但我真的很想学习这些东西,而我的老师并不擅长解释。如果有人能在概念上更清楚地说明这一点,我将永远感激不尽。谢谢!
我开始为一个小型银行帐户程序编写代码,但我的if/else语句不起作用.在循环的顶部,我scanf用来获取有关下一个需要执行哪个选项的用户输入.第一个始终有效,但在此之后,始终会打印错误语句.
例如,用户类型1.印刷的是:
case 1
ERROR, please try again
Run Code Online (Sandbox Code Playgroud)
只有案例1应该打印,为什么错误信息也会打印?我尝试使用switch case语句,但也没有用.
这是我的代码:
char num = '7';
while (1) {
if(num == '7') {
printf("0. Exit\n1. Deposit\n2. Withdrawal\n3. Add account\n");
printf("4. Remove account\n5. Balance inquiry\n6. View accounts\n");
printf("Enter option: (0/1/2/3/4/5/6)\n");
scanf("%c", &num);
}
else if (num == '0') {
exit(0);
}
else if (num == '1') {
printf("case 1\n");
num = '7';
}
else if (num == '2') {
printf("case 2\n");
num = '7';
}
else …Run Code Online (Sandbox Code Playgroud)