用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

该用户从未签到

参加活动: 0

组织活动: 0

starfish 新手上路 2017-1-11 16:09 楼主
刚上手Arduino mega 2560,需要用到serial, serial1, serial2, serial3,有什么办法可以把它们弄成类似数组的结构,可以方便的用循环逐个访问呢?求大神指点~
逐个访问不需用到数组,你用过for循环就行
感谢支持,希望以上内容能给予你启发
本帖最后由 pencilstart 于 2017-1-12 08:16 编辑

其实这要看串口库的设计了,如果每个串口可以生成一个对象,一个库在生成对象时是否可以指定不同串口。那么你就可以用一个对象指针数组保存它们,然后,再在 for 里面对 这个对象指针数组进行轮询。类似于这样:

[C] 纯文本查看 复制代码
Serial as(9600, 1);
Serial bs(9600, 2);
Serial cs(9600, 3);

Serial *ptrSerials[] = {&as, &bs, &cs};
...

void printSerial() 
{
  Serial *ptrS = NULL;

  for(int i =0; i< 3; ++i )
  {
      ptrS = ptrSerials[i];

      ptrS->Send("this is a test");
   }
}

xmile 发表于 2017-1-12 00:27
逐个访问不需用到数组,你用过for循环就行

就是说怎么弄成数组之类的形式方便for循环访问啊。。。
pencilstart 发表于 2017-1-12 08:14
其实这要看串口库的设计了,如果每个串口可以生成一个对象,一个库在生成对象时是否可以指定不同串口。那么 ...

Serial是对象不是类嗯。。。
不过受您的启发找到了它的类是HardwareSerial
HardwareSerial *ptr[] = {&Serial, &Serial1, &Serial2, &Serial3};
for(int i = 0; i < N; ++i)
    ptr->begin(9600);
目前编译可通过~
感谢您的解答
发新帖
发表评论
高级模式  
您需要登录后才可以回帖 登录 | 立即注册  
关闭

推荐主题 上一条 /4 下一条