• 星瞳实验室APP,快速收到回复。扫描二维码或者点击 https://singtown.com/app/
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 每一个新的提问,单独发一个新帖子
  • 描述一定要详细 描述一定要详细 描述一定要详细
  • 请贴出具体的的目的,就是你要做什么。
  • 请贴出具体的代码,与报错提示
  • 代码一定要让别人可以运行的文本,不要贴图片
  • 用openmv发送十六进制数据



    • 0_1544270077021_shang.png 我的编码器是rs485通信的,而且是应答式的,必须发送16进制数据3E 00 00 10 0C编码器才能回传数据,我就加了个485转ttl模块,下面是我写的代码,不知道哪里出错了,在openmv上显示不成功?但是在电脑串口助手上成功了。帮我一下,谢谢你了!

      # UART Control 串口通信
      
      import time
      from pyb import UART
      
      uart = UART(3, 115200)
      uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters
      
      
      def sending_data():
          global uart
          date=bytearray([0x3E,0x00,0x00,0x10,0x0C])
          #print(date)
          uart.write(date)
      
      def recive_data():
          global uart
      
          if uart.any():
              tmp_data = uart.readline()
              #uart.write("RECIVED : %s\n"%tmp_data)
              print(tmp_data)
      
      while(True):
          sending_data()
          recive_data()
          time.sleep(10)
      ![0_1544269838696_shang.png](正在上传 26%) 
      


    • 代码看上去没什么问题。
      我不清楚硬件。

      你的TTL转RS485模块,是全双工的?



    • TTL转RS485模块是半双工的,但是会自动切换流向。
      我的代码是不是向编码器发送了 3E 00 00 10 0C ,openmv会不会多发了什么东西?比如b或者\r\n?
      我的接收会不会是16进制?如果是的话,openmv的接收函数要不要变?或者接收程序里的某些代码要变?



    • 发送的数据,你在软件里都看到了吧。

      接受的话,可能不用readline(),因为我不知道你设备返回的数据是不是回车换行。
      uart.read(1)可以试一下。



    • 0_1544358998035_RZ8{KE`SPT@B80S~_T[7K]H.png
      这个是我发送的数据时显示的图片,但是还是接受不了回传的16进制数据?又或者发送都错了,所以没回传?



    • 下面是我发送的显示图片,发送3E和1E不一样啊

      0_1544425386255_OP7.jpg

      0_154442538Q0H.jpg



    • 什么叫做“发送3E和1E不一样”?