『壹』 linux涓插彛linux涓嬩覆鍙
濡備綍璁劇疆涓插彛1浣滀負linux璋冭瘯淇℃伅杈撳嚭絝鍙o紵
闇瑕佷慨鏀瑰唴鏍擱厤緗鍗曪紝鍦↙inux縐繪嶆暀紼嬩腑鐨勯檮褰5涓璐村嚭鏉ョ殑閰嶇疆鍗曚腑錛屽湪Kernelhacking閲岄潰鏈変釜S3CUart鐨勯厤緗錛屾敼涓轟粠0鏀逛負1鎴2錛涘湪SystemType閲岄潰鏈変釜S3CUART鐨勯厤緗錛屼篃浠0鏀逛負1鎴2錛涘悓鏃朵慨鏀箄-boot鐨勫惎鍔ㄥ弬鏁幫紝bootargs涓鐨刢onsole=ttySAC錛燂紙錛熶粠0鏀逛負1鎴2錛夈
linux涓嬩覆鍙h皟璇曞伐鍏穢gcom瀹夎咃紵
褰撶劧鏄涓插彛銆
涓插彛紜浠剁數璺綆鍗曪紝鍩烘湰涓嶉渶瑕佷換浣曢┍鍔ㄤ互鍙婅蔣浠訛紝涓斿彲浠ユ牴鎹闇瑕佹彁渚涚‖浠跺姞杞藉悇涓闃舵電殑璋冭瘯淇℃伅錛堝俠ootloader鎴朙inux鍐呮牳鍚鍔ㄩ樁孌電殑璋冭瘯淇℃伅錛夈
鑰屼互澶緗戞帴鍙i栧厛紜浠惰捐¤緝涓哄嶆潅錛岃蔣浠朵笂涔熼渶瑕侀┍鍔ㄥ拰鍗忚鏍堟敮鎸侊紝寰寰闇瑕佺瓑寰呯郴緇熷惎鍔ㄨ繘鍏ユe父宸ヤ綔鐘舵佸悗鎵嶅彲鎻愪緵璋冭瘯淇℃伅銆
浠庣伒媧繪т笂鏉ヨ詫紝涓よ呭疄闄呬笂宸涓嶅お澶氾紝涓插彛涔熷彧闇瑕佷竴鏍筓SB杞涓插彛綰垮氨鍙浣跨敤銆傚彟澶栧洜涓虹數鑴戜笂鏈夊氫釜usb鍙o紝鍙浠ヨ繛鎺ュ氫釜璁懼囧悓鏃惰皟璇曘
鍙﹀栦互澶緗戦渶瑕佽劇疆ip銆佺綉鍏崇瓑鐩稿叧璁劇疆錛屾瘮涓插彛澶嶆潅銆
涓插彛鐨勯熷害鍔e娍鍦ㄨ皟璇曞満鍚堟椂涓嶆槑鏄撅紝涓嶅傝翠互澶緗戠殑閫熷害鐢ㄤ綔璋冭瘯瀹屽叏鏄嫻璐廣
鎹鎴戞墍鐭ワ紝鍦ㄥ祵鍏ュ紡璁懼囦笂錛屼覆鍙d竴鐩存槸鏈涓繪祦鐨勮皟璇曟帴鍙c
linux鎬庝箞鍦ㄩ┍鍔ㄤ腑浣跨敤涓插彛錛
Linux鍙戣岀増鑷甯usbtoserial椹卞姩錛屼互妯″潡鏂瑰紡緙栬瘧椹卞姩錛屽湪鍐呮牳婧愪唬鐮佺洰褰曚笅榪愯孧akeMenuConfig閫夋嫨Devcesdrivers-->USBseupport-->
濡備綍鍦╨inux涓嬭皟璇曚覆鍙o紝鍙戦佸嶮鍏榪涘埗鏁版嵁錛
褰撶劧鏄涓插彛銆
涓插彛紜浠剁數璺綆鍗曪紝鍩烘湰涓嶉渶瑕佷換浣曢┍鍔ㄤ互鍙婅蔣浠訛紝涓斿彲浠ユ牴鎹闇瑕佹彁渚涚‖浠跺姞杞藉悇涓闃舵電殑璋冭瘯淇℃伅錛堝俠ootloader鎴朙inux鍐呮牳鍚鍔ㄩ樁孌電殑璋冭瘯淇℃伅錛夈
鑰屼互澶緗戞帴鍙i栧厛紜浠惰捐¤緝涓哄嶆潅錛岃蔣浠朵笂涔熼渶瑕侀┍鍔ㄥ拰鍗忚鏍堟敮鎸侊紝寰寰闇瑕佺瓑寰呯郴緇熷惎鍔ㄨ繘鍏ユe父宸ヤ綔鐘舵佸悗鎵嶅彲鎻愪緵璋冭瘯淇℃伅銆
浠庣伒媧繪т笂鏉ヨ詫紝涓よ呭疄闄呬笂宸涓嶅お澶氾紝涓插彛涔熷彧闇瑕佷竴鏍筓SB杞涓插彛綰垮氨鍙浣跨敤銆傚彟澶栧洜涓虹數鑴戜笂鏈夊氫釜usb鍙o紝鍙浠ヨ繛鎺ュ氫釜璁懼囧悓鏃惰皟璇曘
鍙﹀栦互澶緗戦渶瑕佽劇疆ip銆佺綉鍏崇瓑鐩稿叧璁劇疆錛屾瘮涓插彛澶嶆潅銆
涓插彛鐨勯熷害鍔e娍鍦ㄨ皟璇曞満鍚堟椂涓嶆槑鏄撅紝涓嶅傝翠互澶緗戠殑閫熷害鐢ㄤ綔璋冭瘯瀹屽叏鏄嫻璐廣
鎹鎴戞墍鐭ワ紝鍦ㄥ祵鍏ュ紡璁懼囦笂錛屼覆鍙d竴鐩存槸鏈涓繪祦鐨勮皟璇曟帴鍙c
濡備綍鏌ョ湅linux涓嬩覆鍙f槸鍚﹀彲鐢?涓插彛鍚嶇О絳夛紵
1銆佹煡鐪嬩覆鍙f槸鍚﹀彲鐢錛屽彲浠ュ逛覆鍙e彂閫佹暟鎹姣斿傚筩om1鍙o紝echolyjie126>/dev/ttyS0
2銆佹煡鐪嬩覆鍙e悕縐頒嬌鐢╨s-l/dev/ttyS*涓鑸鎯呭喌涓嬩覆鍙g殑鍚嶇О鍏ㄩ儴鍦╠ev涓嬮潰錛屽傛灉浣犳病鏈夊栨彃涓插彛鍗$殑璇濋粯璁ゆ槸dev涓嬬殑ttyS*,涓鑸瑃tyS0瀵瑰簲com1錛宼tyS1瀵瑰簲com2錛屽綋鐒朵篃涓嶄竴瀹氭槸蹇呯劧鐨勶紱
3銆佹煡鐪嬩覆鍙i┍鍔錛歝at/proc/tty/drivers/serial
4銆佹煡鐪嬩覆鍙h懼囷細dmesg|grepttyS*
『貳』 java實現串口通信代碼
public static void process() {
try {
Enumeration portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements())
{
CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)//如果埠類型是串口則判斷名稱
{
if(portId.getName().equals("COM1")){//如果是COM1埠則退出循環
break;
}else{
portId=null;
}
}
}
SerialPort serialPort = (SerialPort)portId.open("Serial_Communication", 1000);//打開串口的超時時間為1000ms
serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//設置串口速率為9600,數據位8位,停止位1們,奇偶校驗無
InputStream in = serialPort.getInputStream();//得到輸入流
OutputStream out = serialPort.getOutputStream();//得到輸出流
//進行輸入輸出操作
//操作結束後
in.close();
out.close();
serialPort.close();//關閉串口
} catch (PortInUseException e) {
e.printStackTrace();
} catch ( e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
『叄』 Java如何通過串口遠程Linux並執行命令獲取返回結果
長長的執行命令返回結果比較經典。
『肆』 求教linux下java串口收發數據出錯問題
不要昌猜使用inputStream.available(),如果我蔽迅配沒有記錯的話,available返回的是沒有被阻斷的位元組數(已經被緩宏指沖的內容),可以嘗試read(byte b[])方法,然後通過返回值是否-1來判斷,如下。 int bytesRead = inputStream.read(readBuffer);
『伍』 在Linux下怎麼用Java進行串口編程
使用串口協議登錄Linux終端控制台,通過Zmodem文件傳輸協議接收一個外部文件。 命令:rz -y 會彈出文件瀏覽窗口,選擇要上傳的文件即可。 -y 表示若文件已存在,則覆蓋。