请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-F28377S
为什么在 main 运行之前蓝色用户 LED 熄灭、红色用户 LED 亮起? 我希望这两个开关都关闭、因此用户可以根据应用打开它们。
在本视频的15到16分钟之间、我们可以看到红色是如何亮起的、蓝色是如何熄灭的。
谢谢你。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:LAUNCHXL-F28377S
为什么在 main 运行之前蓝色用户 LED 熄灭、红色用户 LED 亮起? 我希望这两个开关都关闭、因此用户可以根据应用打开它们。
在本视频的15到16分钟之间、我们可以看到红色是如何亮起的、蓝色是如何熄灭的。
谢谢你。
何塞、
感谢您提出问题并观看了很好的视频。
您看到的是代码和 I/O 引脚之间的速度差异。 当 I/O 引脚改变状态时、引脚电压从一个逻辑状态变为另一个逻辑状态需要有限的时间。 代码中使用的指令编译为"原子"读取-修改-写入"指令、这些指令首先读取引脚状态、对结果执行逻辑 AND 运算、然后将结果写回。 当您快速连续执行其中两个操作时、引脚时序生效、因为指令时间比引脚快。 您可以在此维基网页上阅读有关该技术的更多信息:
解决方案是使用 NOP 分隔这两条指令、如下所示:
asm (" NOP");
或者使用 GPIO 设置/清除/切换寄存器、而不是直接写入 DAT 寄存器。
但愿这对您有所帮助。
此致、
Richard