Для аппаратной реализации я пытаюсь прочитать непрерывные данные DestinationBuffer в Hercules, используя функцию itoa.Я прочитал данные в Геркулесе с некоторыми символами барахла.Как очистить этот мусор? введите описание ссылки здесь
Фактический поток данных должен быть Данные: 1050842703, Данные: 1050842704, Данные: 1050842705, Данные: 1050842706, Данные: 1050842707, Данные: 1050842708, Данные: 1050842709, Данные: 1050842710, данные: 1050842711, данные: 1050842712,
, но я могу читать данные в Геркулесе, но без запятой.105084270310508427041050842705105084270610508427071050842708 Как разбить данные с помощью запятой.
char *itoa(int val, int base)
{
int i = 30;
for(; val && i ; --i, val /= base)
buf[i] = "0123456789abcdef"[val % base];
return &buf[i+1];
}
err_t recv_callback(void *arg, struct tcp_pcb *tpcb,
struct pbuf *p, err_t err)
{
int i,j,Status;
Status=aurora_rx_main(); ///FUNCTION CALL
for(i=0;i<50;i++)
{
xil_printf(" Data:%d,",DestinationBuffer[i]);
}
int base=10; // here 10 means decimal
char *result={0};
if (!p)
{
tcp_close(tpcb);
tcp_recv(tpcb, NULL);
return ERR_OK;
}
/* indicate that the packet has been received */
tcp_recved(tpcb, p->len);
if (tcp_sndbuf(tpcb) > 50)
{
for (j=0;j<=50;j++)
{
result= itoa(DestinationBuffer[j],base);
err = tcp_write(tpcb,",",10,1); // for itoa
err = tcp_write(tpcb,result,10,1);
}
} else
xil_printf("no space in tcp_sndbuf\n\r");
/* free the received pbuf */
pbuf_free(p);
return ERR_OK;
}
[Hercules Console][1]