一、关于Pi4j 项目:
pi4j是一个开源的raspberry pi JAVA开源项目。
目前最新的版本为:pi4j-1.1 这个与之前的版本有许多不同。
在线安装pi4j :
curl get.pi4j.com | sudo bash
安装完毕后在/opt/pi4j/ 目录下有三个文件夹以及三个文件:

其中examples 文件夹下是使用pi4j 使用java开发应用的例程。在开发我们自己的应用时,可以参考这些例程。
再编译、运行时,参考build 、run 这两个脚本文件。
二、关于raspberry pi 3的引出的UART
注意:本文使用的镜像为2016-05-27-raspbian-jessie.img
该系统默认情况下,接在引出的40pin上的UART是关闭的。
此时,我们编译、运行/opt/pi4j/example/ 下的SerialExample.java 连接好串口线,在PC端使用串口助手是接收不到任何东西的!
解决这个问题需要操作两个步骤:
①、运行 sudo raspi-config :该指令用于配置树莓派
选中第9项 Advanced Options
选择A7 Serial,
使能Serial 作为linux shell 登录
此时重新启动Pi ,连接上串口。可以从串口中接收到Pi的启动输出信息。
此时,我们编译运行/opt/pi4j/example/SerialExample.java 程序也是能够发送数据到PC的串口;但是此时还有点问题!需要注意。我们来看现象:
仔细看,发现我用串口助手给Pi发送了123456,但是它直接就返回给了PC机,这个时候可能没有分析程序,感觉这个也不一定就是Pi的配置问题。但是,我们很快就发现:
UART时不时的多输出一个 6 ,这个正是我们之前发送多的字符的最后一个字符。如果此时觉得问题还不明显,我们关系程序运行:ctrl + c 结束该程序。
我们稍微等待一下,就会发现。此时串口助手还能接收到6。
这个问题就很明显了吧。那么接下来就是解决这个问题。
②解决Serial 作为Raspbian 的shell终端使用时,串口数据传输的问题:
A、先备份一下/boot/cmdline.txt 文件:
B、修改cmdline.txt中的内容。
只需要删除掉console=serial0,115200,并重新启动pi,未修改前的内容如下
修改后:
此时,重新启动pi,串口不会再作为Linux shell 终端了。运行上述例程也不会有问题!