Я пытаюсь получить данные датчика от Arduino & Raspberry Pi, используя последовательную связь RS232. Я искал эту маленькую вещь и нашел что-то связанное по этой ссылке ниже, но не смог получить полную идею.
ОС (ядро) имеет внутренний буфер 4096 байт. Если этот буфер заполнен и на последовательный порт поступает новый символ, самый старый символ в буфере будет перезаписан и, таким образом, будет потерян. После успешного вызова RS232_OpenComport () операционная система начнет буферизовать входящие символы.
Значения правильно поступают из Arduino в Raspberry Pi (вывод прилагается ниже) и хранятся в указателе на unsigned char [], который определяется как unsigned char * buf [4096].

int main()
{
int i, n,
cport_nr=0, /* /dev/ttyS0 (COM1 on windows) */
bdrate=9600; /* 9600 baud */
unsigned char buf[4096];
char mode[]={'8','N','1',0};
while(1)
{
n = RS232_PollComport(cport_nr, buf, 4095);
if(n > 0)
{
buf[n] = 0;
for(i=0; i < n; i++)
{
if(buf[i] < 32) /* replace unreadable control-codes by dots */
{
buf[i] = '.';
}
}
printf("received %i bytes: %s\n", n, (char *)buf);
}
}
Теперь я хочу сохранить эти значения в другой переменной типа float / double, чтобы я мог выполнять над ней дальнейшие операции. Как сохранить значение, предположим, 0.01
в число с плавающей запятой / double, которое позже используется для создания вещи.