我正在尝试用 C 语言编写一个函数,该函数将根据时钟信号移出字节的各个位。到目前为止,我已经想出了这个......
void ShiftOutByte (char Data)
{
int Mask = 1;
int Bit = 0;
while(Bit < 8)
{
while(ClkPin == LOW);
DataPin = Data && Mask;
Mask = Mask * 2;
Bit++;
}
}
其中 DataPin 代表我想要将数据移出的端口引脚,ClkPin 是时钟端口引脚。
我希望设备从字节的 LSB 开始移出 8 位。出于某种原因,我的输出引脚一直保持高电平。我确信端口引脚配置正确,所以这纯粹是一个逻辑问题。