首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在atmega32中通过串行外围接口将数据分量从实时输入数据中分离出来

在atmega32中通过串行外围接口将数据分量从实时输入数据中分离出来
EN

Stack Overflow用户
提问于 2015-05-06 19:05:57
回答 2查看 55关注 0票数 0

我让三个atmega32通过SPI协议向蓝牙模块发送三组感应值(加速计、陀螺仪、磁力计)。我收到了蓝牙数据,但它是这样传过来的,

0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,54.00

0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,51.00

0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,53.00

它是作为csv数据接收的,我无法分离单独的组件。我希望将它们存储在单独的变量中(如x1、y1、z1等)。

下面是我的代码:

代码语言:javascript
复制
# Author: P. Vinod Ranganath
# Description: Receiving data from ATmega32 via bluetooth
# Date: 27/04/2015


import bluetooth
import sys

#address of the bluetooth device
addr = "00:06:66:61:1E:76"
#port number
port = 1

#create socket and connect to it
socket = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
socket.connect((addr, port))




#if there is an incoming transmission, enter loop
while True:
    #receive transmitted data
    data = socket.recv(1024) 

    #print data
    sys.stdout.write(data)  
EN

回答 2

Stack Overflow用户

发布于 2015-05-06 19:10:52

Python有一个csv模块,它可以完成你通常想要的所有CSV解析。

在您的示例中,它甚至更简单: python中的字符串具有split(char)方法,因此

代码语言:javascript
复制
data.split(",") 

应该会给你一个子字符串的数组:

代码语言:javascript
复制
["0.0", "0.0", ....

现在,你想要浮点数,对吧?

坚持你最喜欢的Python教程(真的,读一读吧!)并这样做

代码语言:javascript
复制
values = [float(substring) for substring in data.split(",")]

因此,values是一个浮点数数组。

然后,您可以执行以下操作

代码语言:javascript
复制
x1 = values[10]

但您通常不希望这样做-将这种类型的数据作为数组通常更有用。

票数 0
EN

Stack Overflow用户

发布于 2015-05-07 16:48:23

代码语言:javascript
复制
def get_words(data):
      l = []
      w = ''
     for c in data.lower():
          if c in '\r \n ,':
              if w != '': 
                 l.append(w)
                 w = ''
              else:
                 w = w + c
          if w != '': 
              l.append(w)
return l

在堆栈溢出时发现了这个。

它分离不同的元素并在没有errors.But的情况下进行浮点转换,列表不会按顺序填充(随机地从最后一项到第二位,依此类推)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30074934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档