gpt4 book ai didi

c - 显示收到的号码

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

#include <reg51.h>
#include "_LCD_R8C.c"
#define INPUT_LENGTH 11

char input[INPUT_LENGTH]; /* The input from the serial port */
int input_pos = 0; /* Current position to write in the input buffer */

int main()
{
int i;

lcd_init();
lcd_clear();
SCON = 0x50;
TMOD = 0x20; /* timer 1, mode 2, 8-bit reload */
TH1 = 0xFD; /* reload value for 2400 baud */
TR1 = 1;
TI = 1;
RI = 1;
while (1 == 1)
{
/* read the next character from the serial port */
input[input_pos++] = getCharacter ();
/* send it back to the original sender */
for (i = 0; i <= input_pos; i++)
{
lcd_print_b(input[i]);
}
}
}

char getCharacter(void)
{
char chr[INPUT_LENGTH]; /* variable to hold the new character */

while (RI != 1) {;}
chr[input_pos++] = SBUF;
RI = 0;
return (chr);
}

我尝试显示从 rfreader 读取的 rs232 接收到的编号。但我在显示屏上得到了错误的值,即 002100 而不是 0016221826。但在 super 终端上,我得到了完全正确的值,其中包含 $ ,即 $0016221826。

最佳答案

首先,你确实需要采用合理的缩进风格,这段代码很难阅读。您的代码的问题在于您将用户输入的数组读取到本地数组“chr”中,然后将该数组的地址而不是字符返回给 main。 main() 不需要地址,它需要一个字符。不管怎样,一旦您离开该函数,数组“chr”就无效了。

您的 for 循环打印也不正确并且没有任何意义。每次收到新字符时,您都会一遍又一遍地打印所有字符。

硬件或 MCU 可能存在其他问题,我刚刚修复了最明显的软件错误。

#include <reg51.h>
#include "_LCD_R8C.c"

#define INPUT_LENGTH 11


int main()
{
char input[INPUT_LENGTH]; /* The input from the serial port */
int input_pos = 0; /* Current position to write in the input buffer */

lcd_init();
lcd_clear();

SCON = 0x50;
TMOD = 0x20; /* timer 1, mode 2, 8-bit reload */
TH1 = 0xFD; /* reload value for 2400 baud */
TR1 = 1;
TI = 1;
RI = 1;

while(1)
{
/* read the next character from the serial port */
if(input_pos < INPUT_LENGTH) /* check for buffer overflow */
{
input[input_pos] = getCharacter();
lcd_print_b(input[input_post]); /* only makes sense to print each character once */
input_pos++;
}
}


char getCharacter (void)
{
char chr /* variable to hold the new character */

while (RI != 1)
;

chr = SBUF;
RI = 0;

return(chr);
}

关于c - 显示收到的号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12294129/

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