coo*_*000 3 serial-port arduino
我有以下Arduino代码.
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available() > 0)
{
int b=Serial.read();
Serial.println(b);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我打开串行监视器并输入00000001,我得到输出
48
48
48
48
48
48
48
49
Run Code Online (Sandbox Code Playgroud)
好吧,首先为什么48(和最后一行49),其次为什么这么多行?
我期待获得'1'的简单输出.
如果我将线路更改Serial.println(b);为Serial.println(00000001,DEC);,我会得到我期望的(即'1').但是,如果我将线路更改为Serial.println(b,DEC);,我会得到与之前相同的奇怪输出.
48和49是'0'和'1'的十进制表示.它打印了8行,因为你在一个循环中调用Serial.println.
你最终目标到底是什么?Serial.read()返回字符,而不是值:http://arduino.cc/en/Serial/read
希望这可以帮助!
- 示例:
if(Serial.available() > 0)
{
int num = 0;
for( int i=7; i>=0; i-- )
{
if( Serial.read() == '1' )
num |= (1 << i);
}
Serial.println(num);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3465 次 |
| 最近记录: |