串口发送接收数据回电脑
serial port resend recived data back to pc
我正在使用 atxmega avr,我想向 MC 发送一个字节模式,当它完成并有效时,MC 将模式回复回 PC,发送的模式是一个 8 字节的数组,我试图找出问题所在但没有成功:(,我不知道我的代码有什么问题。
知道串行端口工作正常。
我的代码在这里:
while (1)
{
if (sampling_flag==1)
{
sampling_flag=0;
tx_buf2[i] = usart_getchar(&USARTF0);
i++;
if (tx_buf2[0]== 0x01 && i==7)
{
for (int j = 0; j < 7; j++)
{
usart_putchar(&USARTF0, tx_buf2[i]);
}
}
if(i==7)
i=0;
/*
if (!fifo_is_empty(&rx_fifo))
{
fifo_pull_uint8(&rx_fifo, &byteToSend);
usart_putchar(&USARTF0, received_byte);
}
*/
}
}//end of while(1)
可能你必须像下面那样在 usart_putchar 中使用 "j"
for (int j = 0; j < 7; j++)
{
usart_putchar(&USARTF0, tx_buf2[j]);
}
您当前的代码只能回复 tx_buf2[7]
。
我正在使用 atxmega avr,我想向 MC 发送一个字节模式,当它完成并有效时,MC 将模式回复回 PC,发送的模式是一个 8 字节的数组,我试图找出问题所在但没有成功:(,我不知道我的代码有什么问题。 知道串行端口工作正常。 我的代码在这里:
while (1)
{
if (sampling_flag==1)
{
sampling_flag=0;
tx_buf2[i] = usart_getchar(&USARTF0);
i++;
if (tx_buf2[0]== 0x01 && i==7)
{
for (int j = 0; j < 7; j++)
{
usart_putchar(&USARTF0, tx_buf2[i]);
}
}
if(i==7)
i=0;
/*
if (!fifo_is_empty(&rx_fifo))
{
fifo_pull_uint8(&rx_fifo, &byteToSend);
usart_putchar(&USARTF0, received_byte);
}
*/
}
}//end of while(1)
可能你必须像下面那样在 usart_putchar 中使用 "j"
for (int j = 0; j < 7; j++)
{
usart_putchar(&USARTF0, tx_buf2[j]);
}
您当前的代码只能回复 tx_buf2[7]
。