gpt4 book ai didi

c - 发送十六进制代码

转载 作者:太空狗 更新时间:2023-10-29 17:23:33 25 4
gpt4 key购买 nike

我是 C 编程的新手,我想将十六进制代码 (38) 发送到 8 个引脚(在视差螺旋桨微 Controller 上),以便第一个引脚为 0,下一个引脚为 0下一个引脚得到 1,等等。这样会更容易向每个引脚发送二进制代码。

顺便说一句,这是针对 C 代码的。到目前为止,我使用的代码是:

//int port[] = {27,26,25,24,23,22,21,20};    
int i = 8;

while(i >0)
{ //while start
--i;
low(27);
low(26);
high(25);
high(24);
high(23);
low(22);
low(21);
low(20);
}

我想做的是将一个十六进制代码 (38) 发送到引脚 20 到 27。

最佳答案

循环应该有点不同

int port = 0x20; // starting port
int val = 0x38; // value
int i;

for(i=0 ; i<8 ; i++) {
if (val & 1) high(port);
else low (port);
val >>= 1; // shift val one bit right
port++; // increment port
}

循环从端口 0x20val 的位 0 开始。如果该位为 1,则它在该端口上执行 high 否则它执行 low

然后 val 向右移动一位,以使用位 1,并且端口递增。

等等...为 val (0x38) 的八位执行 8 次。

请注意,如果您必须从顶部端口开始,这个不同的版本应该适合

int val  = 0x38; // value
int port;

for(port=0x27 ; port >= 0x20 ; port--) { // goes from port 0x27~20
if (val & 0x80) high(port);
else low (port);
val <<= 1; // shift val one bit left
}

关于c - 发送十六进制代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459748/

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