极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10456|回复: 1

C++版本arduloader工具可以用了~

[复制链接]
发表于 2014-3-10 19:50:03 | 显示全部楼层 |阅读模式
本帖最后由 Arduin0 于 2014-3-12 15:17 编辑

使用Qt编写
首次运行会要求用户选择已安装的avrdude工具所在目录(要求包含avrdude.exe和avrdude.conf两个文件),如图1:

如果用户选择的路径下没有可执行的avrdude程序,则会报错,如图2:

选择好avrdude工具路径后即可进行hex文件烧写,如图3:


烧写的hex、串口、开发板型号和已选择的avr工具路径会被保存到arduloader.cfg文件中,如图4


欢迎下载试用。

使用第三方的QextSerialPort类,可以方便的获取计算上可用的串口列表~
(代码这里没有处理Linux和Mac下的情况,用户只需要arduloader.cfg中手动配置想要的设备文件名即可,比如:
lastport=/dev/ttyUSB0,arduloader有意不检查配置文件中的设备是否可用~)
  1. /**
  2. * 获取可用的串口列表(使用第三方的QextSerialPort类)
  3. * 返回指向局部static变量的QStringList引用
  4. */
  5. QStringList & ComPortMgr::getAvailableComPorts()
  6. {
  7.     static QStringList availablePorts;
  8.     const int MAX_COM_PORT = 256;
  9.     QString testPortName;
  10.     QextSerialPort testPort;

  11.     testPort.setBaudRate(BAUD9600);
  12.     testPort.setFlowControl(FLOW_OFF);
  13.     testPort.setParity(PAR_NONE);
  14.     testPort.setDataBits(DATA_8);
  15.     testPort.setStopBits(STOP_1);

  16.     for (int i = 1; i < MAX_COM_PORT; i++) {
  17.         testPortName = QString("COM%1").arg(i);
  18.         testPort.setPortName(testPortName);
  19.         if (testPort.open(QIODevice::ReadWrite)) {
  20.             availablePorts.append(testPortName);
  21.             testPort.close();
  22.         }
  23.     }

  24.     return availablePorts;
  25. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-3-12 17:00:22 | 显示全部楼层
太给力了,感谢分享~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 22:30 , Processed in 0.035914 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表