Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Binary numbers on Raspberry Pi
Forum Updated to NodeBB v4.3 + New Features

Binary numbers on Raspberry Pi

Scheduled Pinned Locked Moved Solved Mobile and Embedded
raspberry pi 2spibinarybinary formatconversion
11 Posts 4 Posters 4.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    vish
    wrote on 11 Nov 2015, 20:09 last edited by
    #2

    i guess, u have to develop protocol.. u can choose bigendien or littleendian and than if u have qint16 than cut 2 bytes and make uint16.

    Development is possible at any level.

    D 1 Reply Last reply 11 Nov 2015, 20:34
    0
    • V vish
      11 Nov 2015, 20:09

      i guess, u have to develop protocol.. u can choose bigendien or littleendian and than if u have qint16 than cut 2 bytes and make uint16.

      D Offline
      D Offline
      Dan90
      wrote on 11 Nov 2015, 20:34 last edited by
      #3

      @vish I'm sorry, I don't understand what you mean.

      V 1 Reply Last reply 12 Nov 2015, 11:05
      0
      • S Offline
        S Offline
        SGaist
        Lifetime Qt Champion
        wrote on 11 Nov 2015, 21:38 last edited by
        #4

        Hi,

        Can you show what you want to use from the WiringPI library ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        D 1 Reply Last reply 12 Nov 2015, 13:52
        0
        • D Dan90
          11 Nov 2015, 20:34

          @vish I'm sorry, I don't understand what you mean.

          V Offline
          V Offline
          vish
          wrote on 12 Nov 2015, 11:05 last edited by
          #5

          @Dan90 like this
          qFromBigEndian<uint16>((const uchar*) byteArray.data())
          this will give u uint16 type from ur bytearray buffer.

          Development is possible at any level.

          1 Reply Last reply
          0
          • S SGaist
            11 Nov 2015, 21:38

            Hi,

            Can you show what you want to use from the WiringPI library ?

            D Offline
            D Offline
            Dan90
            wrote on 12 Nov 2015, 13:52 last edited by
            #6

            @SGaist said:

            Hi,

            Can you show what you want to use from the WiringPI library ?

            Hi,

            i want to use the method

            int wiringPiSPIDataRW (int channel, unsigned char *data, int len)

            where I neet to pass an unsigned char pointer. When I try to set one up like this

            unsigned char *data = 0b10000000

            I get the warning that conversion from int to unsigned char is not possible.

            @vish said:

            @Dan90 like this
            qFromBigEndian<uint16>((const uchar*) byteArray.data())
            this will give u uint16 type from ur bytearray buffer.

            I understand that this funtion gets an unsigned char and converts it to uint16 ? But as I said, I need an unsigned char in the first place.

            J 1 Reply Last reply 17 Nov 2015, 06:31
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 12 Nov 2015, 21:23 last edited by
              #7

              Then you can use a QByteArray to build your data and then use its data function to access them. You can cast data to unsigned char *

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              D 1 Reply Last reply 13 Nov 2015, 09:43
              0
              • S SGaist
                12 Nov 2015, 21:23

                Then you can use a QByteArray to build your data and then use its data function to access them. You can cast data to unsigned char *

                D Offline
                D Offline
                Dan90
                wrote on 13 Nov 2015, 09:43 last edited by Dan90
                #8

                Thanks for the hint with QByteArray. I checked it and the problem I still have ist that the data function of my QByteArray object returns a char*, but the wiringPiSPIDataRW function needs an unsigned char*, so I still get an error out of this.

                EDIT:
                I just tried an explicit type conversion and it worked. Could this have a negative effect on my data by any means ?

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 13 Nov 2015, 10:01 last edited by
                  #9

                  Do a type cast: wiringPiSPIDataRW (static_cast<unsigned char *>(myByteArray.data()), myBateArry.size());

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    Dan90
                    wrote on 13 Nov 2015, 12:36 last edited by
                    #10

                    Thanks a lot for the input. It gave no error messages while compiling, however it did not work. I switched to another Library (BCM2835) and i got it to work in just a few Minutes. This library is much better documented than wiringPI SPI.

                    Thanks again.

                    1 Reply Last reply
                    0
                    • D Dan90
                      12 Nov 2015, 13:52

                      @SGaist said:

                      Hi,

                      Can you show what you want to use from the WiringPI library ?

                      Hi,

                      i want to use the method

                      int wiringPiSPIDataRW (int channel, unsigned char *data, int len)

                      where I neet to pass an unsigned char pointer. When I try to set one up like this

                      unsigned char *data = 0b10000000

                      I get the warning that conversion from int to unsigned char is not possible.

                      @vish said:

                      @Dan90 like this
                      qFromBigEndian<uint16>((const uchar*) byteArray.data())
                      this will give u uint16 type from ur bytearray buffer.

                      I understand that this funtion gets an unsigned char and converts it to uint16 ? But as I said, I need an unsigned char in the first place.

                      J Offline
                      J Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on 17 Nov 2015, 06:31 last edited by
                      #11

                      @Dan90 You are assigning a value to a pointer, but data is actually an array of "unsigned char":

                      unsigned char *data = 0b10000000;
                      

                      Instead you should do (C++11):

                      unsigned char data[] = { (unsigned char)0b10000000 };
                      

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0

                      11/11

                      17 Nov 2015, 06:31

                      • Login

                      • Login or register to search.
                      11 out of 11
                      • First post
                        11/11
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved