0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用VisualStudio调试Arduino程序

454398 来源:工程师吴畏 2019-08-02 14:12 次阅读

监控GPIO引脚

使用GPIO引脚作为输入时,可能会遇到意外行为。为了更好地了解正在发生的事情,您可以监控Arduino端口

虽然可以通过使用控制台输出来打印引脚状态来监视Arduino IDE的端口,但VisualMicro可以为您执行此操作,并生成一个显示每个引脚状态的方便图表。

首先启用监视器:

怎样用VisualStudio调试Arduino程序

下次上传程序时,应显示以下面板:

每个GPIO引脚用一个正方形表示,每个方块的颜色表示引脚状态。红色表示低状态,绿色表示高状态。可以为模拟引脚生成类似的图表。

检查程序流程

你可能已经在代码中输入了控制台输出测试您的应用程序是否达到特定的代码行。虽然你可以做到这一点,但有一个更简单的解决方案。您可以使用不会暂停程序执行的断点。相反,它会在到达时向控制台输出一行。

要添加断点,请右键单击并选择“操作”。应出现一个面板,允许您在到达断点时输入打印到控制台的文本:

设置您想要连接到断点的消息。

要启用“经典调试”,到达断点将暂停程序执行,取消选中“继续执行”复选框。

打印和检查变量值

VisualMicro调试器与Visual Studio调试器的工作方式不同,因为应用程序不是在开发它们的计算机上执行的。但是,您仍然可以使调试器显示变量值以轻松确定其行为。

设置其他显示的一种方法是使用上面的断点。您不仅可以在遇到断点时设置自定义文本输出,还可以通过在大括号中添加变量名称来向文本添加变量值:

使用大括号中的命令向断点添加变量。

当您在Arduino上运行代码时,输出面板应显示您的调试消息:

您还会注意到VisualMicro生成一个断点中使用的每个变量的表:

表格应自动显示当您调试代码时,每个断点设置为打印变量值。如果没有,请尝试打开串行监视器,然后重新上传代码。

更改变量值

许多IDE允许您在更改变量值时该程序暂停。您必须从上面更新断点定义才能启用此功能。将“=?”附加到您希望能够在调试期间更改的变量名称:

将代码重新上传到Arduino后,可以使用之前的表来更改值。但是,断点必须在程序到达时停止。

调试代码:基本任务

这个基本指南教你一切你需要知道的事情开始在VisualMicro中调试Arduino应用程序。这样可以更容易理解应用程序中发生的错误并编写更好的代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    187

    文章

    6456

    浏览量

    186472
  • visualstudio
    +关注

    关注

    0

    文章

    4

    浏览量

    2320
收藏 人收藏

    评论

    相关推荐

    怎样用THS3201实现输出功率可调?

    怎样用THS3201实现输出功率可调?
    发表于 08-26 08:28

    OPA735加OPA333,怎样用TINA TI去仿真?

    当输入信号VG1从7.06V慢慢变化到7.22V时。 输出电压Vout的变化必须是接近线性变化的。我想知道我该怎样用TINA TI去仿真?怎样设置那个输入信号VG1才能达到我的目的。因为这个电压源好像
    发表于 08-02 08:39

    怎样用Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino程序代码。
    的头像 发表于 07-30 09:14 652次阅读
    <b class='flag-5'>怎样用</b><b class='flag-5'>Arduino</b>测试锂电池容量

    Arduino放回了一个空的schetch,重新打开了程序不断重启的原因?

    . 我arduino重新加载,就像照片2一样,但它总是以相同的方式重新启动。 我将代码切成两半,重新加载,它有效。 我恢复原始代码,加载它,它有效。 我将相同的程序与加载器放回原处,它会不断重新启动
    发表于 07-10 07:22

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?

    怎样用STM8L的PB3/TIM2_TRIG的引脚测量脉宽?
    发表于 05-07 06:55

    stm32f100怎样用重映射功能?

    的是stm32f100c8t6b芯片,现在想用将PB1映射为TIM1_CH3N,在调用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)时, GPIO_PinAFConfig和GPIO_AF_TIM1都没定义,stm32f100
    发表于 05-07 06:06

    STM32F412G-DISCO怎样用MX生成fatfs的代码?

    STM32F412G-DISCO怎样用MX生成fatfs的代码? SD卡例程能跑,但mx生成的代码不能正常运行,我生成代码后是不是还要配置一些东西?(我生成后只写了测试代码) 问题解决了,虽然我不知道我为什么不能直接使用mx生成的代码去操作sd卡,但我通过复制粘贴例程的代码完成了测试。
    发表于 03-12 08:15

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的
    的头像 发表于 01-31 10:41 2334次阅读

    怎样用表来判断加热管的好坏?

    怎样用表来判断加热管的好坏? 万表是电工常用的测量仪器,它可以用来判断加热管的好坏。加热管是一种常见的加热元件,广泛应用于家电、机械设备和工业生产中。在选择和使用加热管时,我们需要了解其电阻值
    的头像 发表于 12-20 17:21 4668次阅读

    USB调试模式是什么意思?USB调试模式有什么

    USB调试模式是什么意思?USB调试模式有什么? USB调试模式是一种在Android设备上进行开发、测试和调试的模式。当设备处于USB
    的头像 发表于 12-11 11:06 1w次阅读

    无线通信:怎样用电磁波表示1和0

    为什么频率越高,能携带的信息就越多?以数字信号为例,信息就是一串串的1和0,所以先搞清楚怎样用电磁波表示1和0。
    发表于 12-05 14:44 1671次阅读
    无线通信:<b class='flag-5'>怎样用</b>电磁波表示1和0

    ADAU1452做FFT分析,怎样设定取样点的数量?

    请问,我想用ADAU1452做FFT分析,怎样设定取样点的数量,还有就是怎样用单片机读出分析得到的复数结果数组?谢谢!
    发表于 11-29 06:42

    怎样用ADAU1761设计DRC的压缩/扩展?

    请问怎样用ADAU1761设计DRC的压缩/扩展。我在SigmaStudio 4.5的模块中只找到RMS。如果ADAU1761设计DRC要怎样
    发表于 11-28 06:41

    运算放大器的THD+N参数应该怎样用

    %。仅有AD8066在1MHz时有80dbC,但是AD8066容性负载驱动力不强。由于需要缓冲的是高精密度的信号,频率可到1MHz。我想请问大家: 1、运算放大器的THD+N指标应该怎样用呢?是不是
    发表于 11-17 12:00