gpt4 book ai didi

c - 将数据上传至 MAX 7219

转载 作者:行者123 更新时间:2023-11-30 20:30:32 25 4
gpt4 key购买 nike

我有以下代码在 MAX7219 上写入数据以点亮 8x8 LED 矩阵:

for (i = 0; i < 8; i++)  {          
CLK = LOW;
DIN = temp & MSBIT >> i;
CLK = HIGH;
}

遗憾的是,我只知道代码行 (DIN = temp & MSBIT >> i;) 必须与此完全相同,否则 LED 将不会显示符合预期,但我不明白它是如何工作的......

拜托,我真的需要解释,因为我被困住了......

注意:变量“temp”始终是十六进制数,例如 0x20,并且“MSBIT”= 0x80。

最佳答案

您的示例不完整,因此无法给出详细答案。请提供完整的最小运行示例,并告诉我们有关您正在使用的平台的信息。例如,变量“temp”尚未在代码片段中声明或定义。首先你必须了解一些关于运算符优先级的知识。看看这里:https://en.cppreference.com/w/c/language/operator_precedence

您可以使用此在线 gcc 编译器来运行和调试小型测试应用程序,以测试代码行的行为。 http://pythontutor.com/c.html

所以我猜DIN是外设的寄存器。您向该寄存器分配一个值。该值是变量 temp 和 MSBIT(“可能是常量”)右移 i 位的按位“AND”运算结果。因此,为了使表达式更清晰,您还可以编写:DIN = temp & (MSBIT >> i)。

有关 MAX7210 工作原理的更详细信息,请查看此处。 https://howtomechatronics.com/tutorials/arduino/8x8-led-matrix-max7219-tutorial-scrolling-text-android-control-via-bluetooth/

关于c - 将数据上传至 MAX 7219,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54102235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com