我想使用read(2)
函数从BeagleBone Black(Debian)上的UART1 / ttyO1一次读取多字节长的数据(请参阅我的former Q here)。例如:
uint32_t _integer32;
read(_fd_rx,&_integer32,4u);
但是目标变量_integer32
将以相反的顺序保存接收到的数据字节。例如。当传入的字节按0x01
,0x02
,0x03
,0x04
的顺序进入时,_integer32
将保留值:0x04030201
而不是0x01020304
。
为什么会这样?
输入字节的顺序肯定是正确的,因为
-
多个1字节长的读数
read(_fd_rx,&_integer8,1u);
(和印刷品)显示收货顺序正确,并且 -
我是使用USB-TTL转换器电缆将数据发送到BBB的人。
我可以想象到ttyO1被表示为已正确填充的FIFO,只有read()
没有相应地起作用。
我的目标是能够使用read()
一次甚至读取4k(又名N_TTY_BUF_SIZE)字节到预先分配的存储区中。所需的大小未知。