
首先你写的逻辑有问题
while(Serialavailable()>0)比如,这里我输入了1
{
if (sum<3) sum小于3时存入a
{insum=Serialread(); a[sum]=insum; sum=sum+1; } //insum读取出来是1了
if (sum>2) sum大于2时存入b
{insum=Serialread(); b[3-sum]=insum; sum=sum+1;}//这里又读了一次?
就是说 Serialavailable() 一次只能读一个出来的,另外的要留到下次判断
这个虽然回答不了你的问题,但是是一个明显的错误
首先是串口的读入: 基本的串口读入: void setup() { Serialbegin(9600); //设置波特率为9600,一般是这个波特率 } void loop() { if(Serialavailable()>0)//如果串口有数据进入的话 { char c=Serialread();//每次读一个字符,是ASCII码的 } } 然后就是相当于读入信息的处理了 比如说如果建一个字符串name,每读一次c若不是等号或空格就加进去, 当读到等号时就读完一个名字了,接下来一直读到空格的都是数据, 当读到空格后就完成一个循环,继续上面的循环这样
以上就是关于关于Arduino 关于串口通信全部的内容,包括:关于Arduino 关于串口通信、求arduino与串口屏通信的代码、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)