关于Arduino 关于串口通信

我想编一个程序-------->1、我用串口向arduino发送6个数字2、arduino把前3个数字存在数组a中把后3个数字存在数组b中3、最后向我输出这2个数组里的内... 我想编一个程序-------->1、我用串口向arduino发送6个数字
2、arduino把前3个数字存在数组a中 把后3个数字存在数组b中
3、最后向我输出这2个数组里的内容

----------------------------------------------------------------------------------------------------
我写的程序

int a[3],b[3]; 两个数组
int insum; 输入的数字
int sum=0; 用来计数的
int j; for循环中用来计数的

void setup()
{ Serial.begin(9600);
Serial.println("power up!");}

void loop()
{
if (sum=5) 到第六次的时候 计数归零
{sum=0;}

while(Serial.available()>0)
{
if (sum<3) sum小于3时存入a
{insum=Serial.read(); a[sum]=insum; sum=sum+1; }
if (sum>2) sum大于2时存入b
{insum=Serial.read(); b[3-sum]=insum; sum=sum+1;}
while(sum=5)
{
for(j=0; j<6;j=j+1;) 输出的循环
{
Serial.print("a["); Serial.print(j.DEC);Serial.print("]=");Serial.println(a[j]);
Serial.print("b["); Serial.print(j.DEC);Serial.print("]=");Serial.println(b[j]);
}
}
}

---------------------------------------------------------------------------

然后问题是 不管我输入什么 它总是输出 a【0】=1

是我程序敲错了吗 ??

求指导啊啊啊啊!!
展开
 我来答
匿名用户
2014-07-31
展开全部
首先你写的逻辑有问题
while(Serial.available()>0)比如,这里我输入了1
{
if (sum<3) sum小于3时存入a
{insum=Serial.read(); a[sum]=insum; sum=sum+1; } //insum读取出来是1了
if (sum>2) sum大于2时存入b
{insum=Serial.read(); b[3-sum]=insum; sum=sum+1;}//这里又读了一次?

就是说 Serial.available() 一次只能读一个出来的,另外的要留到下次判断

这个虽然回答不了你的问题,但是是一个明显的错误
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式