我想请教一个关于数字信号输出函数digitalWrite函数问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2880|回复: 1

[已解决] 我想请教一个关于数字信号输出函数digitalWrite函数问题

[复制链接]
发表于 2022-1-4 19:06 | 显示全部楼层 |阅读模式
大佬们,我想请教一下关于数字信号输出digitalWrite函数的问题。最开始使用过程中按照历程点亮发光二极管时digitalWrite函数后面都加入了delay函数。但是在运行以下程序时发现了问题。如图。
该程序最初将两个LED的状态定义为关闭,set up函数就是一些简单的调用,loop函数后有一个serialEvent函数用来与计算机串口通讯,获得电脑输入字符。设定输入‘A‘灯1常亮/关闭,输入’B’灯2常亮/关闭。再加入以上loop函数后可以正常实现要求。
但是如果我将else if中的else去掉,或者只去掉第二个else if中的else,灯无反应。在程序逻辑上讲,我认为去掉else不会对程序运行有影响,只会增加判断次数,所以我仔细观察后发现更改代码后输入A/B,LED会闪一下,因此加delay函数验证,发现是由于点亮时间过短导致人眼未观察到。所以我产生疑问:为何将用else if 时digitalWrite函数原本可以恒输出高电位,但是去掉else时digitalWrite函数就只能瞬时输出高电平了?
QQ截图20220104181312.png
发表于 2022-2-28 00:22 | 显示全部楼层
stringComplete在一次循环之后,你设置成false了,最外圈的if里面都不会执行
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:14 , Processed in 0.075738 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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