c - 上传数据到 MAX 7219
问题描述
我有以下代码在 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。
解决方案
让我猜猜:
CLK
: 微控制器的时钟输出引脚 : 微控制器的
DIN
数据输出引脚
因此,您正在使用时钟信号 ontemp
逐位移出值。 DIN
CLK
i = 0 -> DIN = bit 7 of temp
i = 1 -> DIn = bit 6 of temp
...
i = 7 -> DIN = bit 0 of temp
推荐阅读
- kubernetes - 如何使自动集群升级工作 GKE/digitalocean 用于具有不同请求内存要求的作业类型?
- html - 滚动条显示在 chrome 扩展默认弹出窗口中
- javascript - 在服务中使用 Ember 事件发布/订阅事件
- computer-science - 是否有必要从不包含左递归的 CFG(上下文无关语法)创建解析树?
- javascript - 占位符出现显示问题
- python - Python:检查解析的日期时间是否具有正确的时区
- c# - WinForms DataGridView 在列出图像时没有响应
- java - 具有公共 IP 地址的 DatagramSocket
- javascript - 使用具有花括号的正则表达式获取字符串匹配并替换所有包括花括号
- excel - 如何在工作表中使用 vba 禁用形状复制粘贴