Jump to content

Detecting serial (uart) ports with Java


Peter Valencic

Recommended Posts

Hi,

 

In my project I want to use UART on GPIO pin (8,10). I wrote a simple Java app to decet serial ports on my orange PC but it return only /dev/ttyS0 - Serial

 

Here is simple java code using rxtxlibrary..


package org.mbp;

import gnu.io.CommPortIdentifier;

/**
 *
 * @author Peter
 */
public class TestCom {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("-------------------------------");
        System.out.println(System.getProperty("java.version"));
        System.out.println(System.getProperty("os.name"));

        java.util.Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();
        while (portEnum.hasMoreElements()) {
            CommPortIdentifier portIdentifier = portEnum.nextElement();
            System.out.println(portIdentifier.getName() + " - " + getPortTypeName(portIdentifier.getPortType()));
        }

    }

    static String getPortTypeName(int portType) {
        switch (portType) {
            case CommPortIdentifier.PORT_I2C:
                return "I2C";
            case CommPortIdentifier.PORT_PARALLEL:
                return "Parallel";
            case CommPortIdentifier.PORT_RAW:
                return "Raw";
            case CommPortIdentifier.PORT_RS485:
                return "RS485";
            case CommPortIdentifier.PORT_SERIAL:
                return "Serial";
            default:
                return "unknown type";
        }
    }

}

Whe I run the code on orangepiPC I get only one UART which is /dev/ttyS0

 

-------------------------------
1.7.0_121
Linux
/dev/ttyS0 - Serial
 
 
 
Is there some configuration file to enable / disable UARTS? 
 
 
thank you.
Link to comment
Share on other sites

Thank you for your help!

 

here is

screenshot_193.jpg

 

for: ls -l /boot/dtb/overlay  

I don't have subdirectory dtb

screenshot_193.jpg

 

dmesg | grep serial

screenshot_193.jpg

 

 

cat /proc/device-..... (I don't have this folder)

screenshot_193.jpg

 

 

thank you for your help. I don't have much experience in linux but must do a project for thesis ;) ;(

Link to comment
Share on other sites

 

Other UARTs are not enabled by default.

For Legacy, you need to edit the FEX.

For Mainline, where we have now overlays, you need to add them in the /boot/armbianEnv.txt :

Hi

Does this means that it could be possible to change the use of the GPIO pins "on the fly"

I mean without rebooting.

Link to comment
Share on other sites

Hi

Does this means that it could be possible to change the use of the GPIO pins "on the fly"

I mean without rebooting.

 

Sure.  Just write a driver module that manipulates the proper bits in the setup registers, read the data sheet for your CPU and the kernel source code.  The "confidential" H3 data sheet is on the sunxi web site.  Apparently the H2 used on the opi zero is very close, but I have not found it's data sheet.  This is not something I would recommend for beginner programmers.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines