视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数

 1、前提

创建一个四个字节的地址

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第1张图片

2、发送数据

(1)直接发送数据

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第2张图片

再观察地址里的值

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第3张图片

与我们想要值不一样

输入0,而实际值则为

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第4张图片

结论:直接输入值到地址,值会发生变化

(2)走全局变量发送数据

添加全局变量(值为1,更好的区分)

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第5张图片

走全局变量发送数据

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第6张图片

查看地址的数据值

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第7张图片

发现问题:

这里可以观察到,地址数值为 00 01 00 00 ,与预想不符

查看地址的绑定

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第8张图片

虽然寄存器个数是2个,但是Int类型是16位

所以结果只在前两个字节显示,我们将其更改为32位,再发送一次

(8bit = 1字节)(16bit = 2字节)(32bit = 4字节)

地址的数据显示为16进制显示

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第9张图片

此时的结果为 00 00 00 01 ,是我们的准确结果

3、接收数据

若Int类型选择16位,但接收数据是32位的数据会如何,用float类型测试一下

将输入值更改成32位浮点数(大小端可以自己选)—— 这里是大端

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第10张图片

更改后如下图

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第11张图片

输入浮点数3.14,视觉里查看地址数据

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第12张图片

接收数据接收地址里的数据

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第13张图片

将地址数据进行解析(地址位置0-3,是因为四个字节,0,1,2,3)

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第14张图片

可以发现Int类型为16位并不影响接收32位数据

4、视觉发送浮点数数据

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第15张图片

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第16张图片

执行发送,观察数值

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第17张图片

可以看到 Int类型为16bit依旧可以发浮点数的数据

如果将发送顺序更改呢

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第18张图片

从站接收的数据明显发生变化

5、结论

视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数_第19张图片

(1)视觉接收别人发送的数据

只需要注意寄存器个数即可,一个寄存器存16bit即两个字节,想接收 Int类型和float类型 ,则需要两个寄存器

(2)视觉发送数据给别人

整数:

看地址中寄存器个数选择

一个寄存器为一个地址,即 Int类型选择16bit

两个寄存器为一个地址,即 Int类型选择32bit

浮点数:

双方先约定好浮点数的传输走的是大端还是小端

再去更改发送顺序

大端好像是ABCD

小端没有进行试验,可以自行尝试,非常简单

你可能感兴趣的:(#视觉,学习)