gpt4 book ai didi

c - 通过 UART 发送十六进制

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:52 25 4
gpt4 key购买 nike

我正在尝试通过 UART 将十六进制数据发送到我的 AVR。问题是,我不能发送超过两对十六进制。我需要发送两个以上,例如 9-10。

例如:

我只能发送 0x2f0x3f。如果我发送的多于此,它总是负数。

我需要发送0xff234f3a3f

我的代码:

sendString("wish me luck\n");

while(1)
{
char str[35];
int i;

printf("enter the code :\n");
scanf("%x", &i);
printf("%#x (%d)\n",i,i);
}

我做错了什么?

最佳答案

您可以通过将要发送的数据存储在软件缓冲区中来实现这一点,并且一旦 avr 发送了 1 字节的 uart 数据,就用来自软件缓冲区的字节填充 uart 寄存器。你可以这样做:-

char ar[] = "hello";
for (i = 0; i < strlen(ar); i++) {
while ((UCSR0A & (1<<UDRE0)) == 0);
UDR0 = ar[i];
}

希望对你有帮助

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

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