arduino调试的流程图_Arduino 的调试以及相关问题
写在前面
很长一段时间以来,Arduino的开发基本都是在Arduino-IDE下完成(即官方开发工具),其优点就不再详述了,缺点显而易见,无法进行调试,当然对于简单的程序,也没有必要进行调试,串口打印出来看一下就可以了,但是当需要进行复杂程序开发或者BT功能开发的时候调试工作在所难免。以下仅对Arduino的调试环节与大家分享,如果错误之处还请大家指正。
如需转载,请标明原文出处。
开发环境
日下arduino的应用如火如荼,支持arduino的开发工具也越发的多了,常见的例如sublime text 、Microsoft Visual Studio、Atmel Studio等。对于调试工作以下以Atmel Studio和Microsoft Visual Studio进行说明。
使用插件调试(Visual Micro Arduino Studio)
不难看出Atmel Studio和Microsoft Visual Studio
都是一伙人开发的,整个开发界面方式非常相似,也都对Arduino进行了很好的支持。这里一并描述。
配置环境
首先打开开发软件,在菜单-工具-扩展与更新(英文版自行对照)
找到Arduino ide for visual studio
,找不到就在右边搜索栏里直接输入Arduino,点击安装即可。
安装完成后就会菜单中就会出现vMicro选项。
当然Arduino 官方IDE软件也不能少 安装完后即可。
点击菜单-vMicro-Visual Micro Explorer 对Arduino 路径进行设置
IDE 和
Board中选择好自己的版本和板子、芯片型号
以上步骤网上很多详细介绍。
特别说明:这个插件是付费的,不掏钱是不能进行调试的,可以根据自己情况选择一年的或者不限期的,20-45美刀 支持支付宝付款(实时汇率)。选择Non-commercial/student 就可以啦
土豪就无所谓了。
掏钱了,就能收到license key ,这里就不啰嗦了。
开始调试
打开Arduino project (选择一个arduino
文件进行调试,如果要从头开发就新建一个,该起名起名该保存保存)。
设置断点
要想显示数据需要进行设置
在断点处右键-条件/执行
注:如果要查看LOOP内的数据时,最好设置一下断点触发条件,否则你会烦死的。
这里输入完,按回车就可以了
这个说明一下,设置条件的意义就是
当收到的这个字符串长度大于0
的时候再显示出这个字符串的值,然后停在这里别跑,如果选择了继续执行,程序就继续该干嘛干嘛去了。
如果要显示好几个数据值{数据A}{数据B}……这样就可以。如果这个要查看的数据写错了或者在当前位置非法,编译的时候就会报错。
硬件连接和设置
说完软件说硬件,不管是开发板还是自己的板子,调试需要串口接入,这里可以设置烧写和调试分别使用什么接口。
点击vMirco-Uploader,如果打算用串口烧写就选择好串口,当然你的板子需要支持串口写入(需要bootloader),如果打算使用别的烧写器就在programmer中选择对应的烧写器,可以勾选一直使用烧写器烧写的选项。
在调试选项中设置调试串口信息
vMirco-Debugger-Override Local Port / Speed
勾选Automatic Debugging 可以直接进入调试模式
串口无所谓是板载USB转232 还是RX
TX 引出了再接USB-232
都可以
开始调试
点击vMirco-Build & Upload
等烧写完成后就进入了调试模式,这个时候串口窗口会打开
这里我们在串口发送一些数据,看一下断点处的情况,按回车发送
此时
程序暂停在了断点位置,并把获取的信息显示出来
vMirco中Continue/Step Next
也会亮起,如果设置多个断点,点击即可进行下一步跟踪。
这里可以输入带有格式符的内容,特别说明一下
如果输入了特殊字符数据将会显示乱码,不会影响程序正常解析,只是你看不到。
关闭串口或者点击vMirco-Stop Debug就可以结束调试。
使用Atmel-ICE进行调试
Arduino毕竟使用的还是Atmel的芯片,自从microchip收购了Atmel之后,对这一部分的扶持力度也有加强,之前大家总是说Arduino只能当玩具玩,做项目还是SMT32,现在官方给出的说法是Atmel的稳定性其实更适合工业环境(来自官方的说法)。在我看,使用什么系统搭建平台,完全取决于开发成本,这里说的成本包括开发的时间成本、开发配套的成本以及BOM成本,至于能不能胜任项目需求,我想各大厂家都会有相应的芯片可以选择。
Atmel-ICE 官方报价RMB594.31
BASIC版本就可以了
FULL
KIT里面只多了很多接口,可以根据自己情况购买 ,这里使用的是328P的芯片,只有ICSP接口,所以只能使用6Pin的ISP线。
特别说明一下,Atmel-ICE自己没有供电,板子需要单独供电(引用togke(弘毅)老大的话“带供电的都是土路子,人家大厂的从来不带供电”)
硬件连接与设置
Atmel-ICE Basic 配线一边10Pin 一边 6Pin ,10Pin接在对应的AVR接口,6Pin接到板子的ICSP接口
这里注意线序,别插反了。
打开Atmel Studio 菜单中选择工具-Device Programming。
Tool中选择Atmel-ICE,芯片型号,点击Apply,程序会读出芯片相关信息。
点击Device signature 下方的Read
(这一步很关键如果失败则无法进行后续工作),将会显示芯片当前的状态信息,以及内存、熔断标记。
在vMirco中Uploader-Programmer,选择Atmel Studio ATMEL-ICE (ISP),Debugger中选择Atmel Studio Debugger 。
点击菜单调试-最下方程序Properties…
Tool选项卡中
Selected
debugger/programmer 中选择Atmel-ICE
Interface 选择debugWIRE(ISP模式不能调试只可以烧写程序)
点击菜单调试-Start Debugging and Break 当然点击Continue 或者逐语句、逐过程、运行到光标处
都可以。
程序会弹出提示,修改DWEN标记,因为这里使用了debugWIRE方式进行调试,具体介绍网上很多,有兴趣的自行学习。这里只能同意。确认OK
开始调试
注:这里调试的文件不再是原来的ino文件而是cpp,设置断点。
这里就可以使用任何一个串口调试工具进行数据发送。
程序停到断点处,我们可以添加监视
右键要查看的变量选择添加监视
下方就可以显示对应变量的相应信息,如果操作内存右侧可以看到相应的变化
在Atmel-debugger 工具栏选项卡中可以查看IO引脚相应的数据变化
结束调试
结束调试的时候一点要点击菜单调试-Disable debugWIRE and
Close按钮,否则后果DWEN标记为不能被改回。原因很简单debugWIRE占用了芯片的Reset引脚进行调试。
官方给出了明确说明
注:如果很不幸,没有按照标准作业操作,后面将无法在进行烧写操作,解决方案,打一个断点记得在cpp文件中,然后使用逐语句、逐过程、运行到光标处
都可以当开始调试的时候点击停止调试或者Disable
debugWIRE and Close按钮进行挽回。之后最好再查看一下熔断标记位,将DWEN去掉。
再次调试
有时会出现正常结束调试完后,需要再次进行调试时报错的现象
解决方案,熔断位正确时,板子断点,重启在进行调试即可。
结束语
感谢togke(弘毅)的答疑解惑,祝愿使用Arduino的朋友2018年0
bug。
arduino调试的流程图_Arduino 的调试以及相关问题相关推荐
- arduino调试的流程图_Arduino UNO 样板调试
: 从硬件上看, Arduino UNO 与之前 Arduino 2009 版本的最大不同在于 USB 转串 口部分, Arduino 2009 采用的是 FTDI 专用芯片 FT232RL ,而 A ...
- 试图运行项目时出错,无法启动调试。没有正确安装调试器,请运行安装程序安装或恢复调试器。...
用Visual Studio.net 2003调试项目时,出现错误对话框,显示如下: 试图运行项目时出错,无法启动调试.没有正确安装调试器,请运行安装程序安装或恢复调试 ...
- 【转】“无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域”错误提示的解决...
错误提示: 无法在Web服务器上启动调试.您不具备调试此应用程序的权限,此项目的URL位于Internet区域 一般用下面的方法可以解决: 1:确认在"配置属性"中的"启 ...
- python调试器的功能,python调试器是什么
1.说明 Python调试器,是可以节省时间并提高 Python 技能的工具,有标准库自带的pdb和开源的ipdb两种. 2.两种类型 pdb是Python自带的库,为Python提供了一种交互式的源 ...
- VS2019调试查看变量_PL/SQL调试存储过程?看这篇就够了
概述 虽然现在存储过程相对比较少用了,但是平时接触不可避免的要跟存储过程打交道,当需要自己写的时候总会碰到这或那的错误,这个时候一般要怎么调试呢? PL/SQL调试 PL/SQL中提供了[调试存储过程 ...
- c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程
c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程 转载于:https://www.cnblogs.com/Littl ...
- [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- visual studio 调试python_Visual Studio Code Python 调试设置
很意外Visual Studio Code居然支持Python代码的断点调试.一起来配置一下. 工具/原料 Visual Studio Code 1.1 Python 2.7.11 方法/步骤 1 首 ...
- oracle中调试存储过程,详解Oracle调试存储过程
详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...
- java调试案例_Spring-boot的debug调试代码实例
这篇文章主要介绍了Spring-boot的debug调试代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 xml文件中配置: scf.serv ...
最新文章
- 树莓派:人在太空,刚下火箭,诚招小于19岁的代码开发者
- 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)
- debian9 没有ipv4
- centos7部署nodejs新版
- ubuntu16.04caffe训练mnist数据集
- 这操作厉害:怎么样发布你的 Python模块给别人 “pip install”
- ubuntu之修改硬盘名称
- layUI table 按条件搜索 结果整个页面刷新
- 剑指offer——面试题41:和为S的连续整数序列
- putty的保存功能如何使用
- 装箱问题 BPP first fit、best fit、first fit decreasing、best fit decreasing
- 关于网页导出Excel
- linux部署was找不到8879端口,WAS8.0与IHS集群安装与配置指导手册
- arm-linux-gcc交叉编译器和gcc编译器的下载地址
- 单片机i o口扩展 c语言,基于2片74LS138的单片机I/O口扩展分析
- 基于Java毕业设计游戏分享平台源码+系统+mysql+lw文档+部署软件
- 青春树儿童摄影网网页
- 51单片机使用PWM调速
- android APP闪退后如何屏蔽自启动
- c语言 判断互质,[经典算法] 找出某数以内与其互质的数
热门文章
- 百度竞价的五个基本特征!
- 贵州省计算机职称考试时间2015年,关于2015年8月份贵州贵阳职称计算机考试安排通知...
- 微软拼音变成繁体,如何修改为简体
- 现代黑科技版“指鹿为马:使用CycleGAN实现男女“无痛变性”
- NLP太卷,我去研究蛋白质了~
- 查看电脑开机关机记录
- android模拟器如何增加RAM
- 网络口碑营销从“可以做”、“值得做”到了“必须做好”的阶段!
- 网页性能优化之图片懒加载
- 李白关于鸿蒙的诗,名诗欣赏:李白《把酒问月》之--青天有月来几时