使用 WiringPi 库在 Raspberrypi 上进行串行通信,函数 serialPutchar(int fd, unsigned char c) 和 serialGetchar (int fd) 可以正常发送和接收整数值,但不显示浮点数
发送方
int main ()
{
int fd ;
int count ;
float val;
if ((fd = serialOpen ("/dev/ttyAMA0", 9600)) < 0)
{
fprintf (stderr, "Unable to open serial device: %s\n", strerror
(errno)) ;
return 1 ;
}
if (wiringPiSetup () == -1)
{
fprintf (stdout, "Unable to start wiringPi: %s\n", strerror
(errno)) ;
return 1 ;
}
for (count = 0 ; count < 256 ; ){
val=4.1;
fflush (stdout) ;
serialPutchar(fd,val);
++count ;
delay (500) ;
}
printf ("\n");
return 0;}
接收端
int main ()
{
int fd ;
if ((fd = serialOpen ("/dev/ttyUSB0", 9600)) < 0)
{
fprintf (stderr, "Unable to open serial device: %s\n", strerror
(errno)) ;
return 1 ;
}
if (wiringPiSetup () == -1)
{
fprintf (stdout, "Unable to start wiringPi: %s\n", strerror
(errno)) ;
return 1 ;
}
while(true)
{
printf ("%f", serialGetchar (fd)) ;
fflush (stdout) ;
printf ("\n") ;
}
return 0 ;
}
我预计输出为 4.100000 但实际输出为 0.000000
任何帮助发送和接收浮点数将不胜感激提前谢谢