如何在python中读取串口上的映射寄存器

时间:2016-07-15 04:24:13

标签: python pyserial

我的硬件已连接到计算机的COM1。硬件从电路收集状态,开关(布尔),电压(4字节双值),电流(4字节双值)和频率(4字节双值)。然后将数据映射到连接到COM1的输出串行端口。这是寄存器的地址: F808h,位0(开关状态) F808h,位14(开关状态) F809h,位0(开关状态) F809h,位14(开关状态) F80Ah(当前) F80Ch(当前),.... 我怎样才能阅读这些寄存器? 我使用了Pyserial,但得到了以下结果: B“\ xa5F` \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ XC0 \ X00 \ X01 \ X00 \ XF8 \ X00 \ X00&安培; \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 @ \ X01 @ \ X00> \ x830V> \ x834 \ X96> J#\ xe1B \ XEDS \ xf6B \固定的\ XB7 \ x0bB \ xf9g4Bp \ X04 \ X07大于7 “\ XA4→2 \ XC2 [> * \ XB8 \ x93C \ x00E \ xa6B \ xf9 \ XF1 \ x90B \ XF6 * XBP \ X08 \ xf4R \ XD3 \ n“个

我无法解释它。

为了更清楚,有一个外部设备有16个串口。不同的IED可以连接到设备的每个串行端口(端口1-15),端口16连接到PC的COM1。所有其他端口的数据都映射到端口16.下图显示了数据如何映射到端口16。 enter image description here

我想直接在Python中访问设备的端口16的寄存器。在Pyserial中使用readline()或read()方法不是一个好主意,因为我不需要读取所有数据,在大多数情况下,我需要读取特定数据或写入特定数据。 是否有任何输入缓冲区用于将数据从设备映射到计算机?如果是,那么如何在Python中访问这些缓冲区? 任何帮助将不胜感激。

0 个答案:

没有答案