一、检查COM口是否冲突

解决方法:将冲突COM口改为其他COM口号
步骤:
1、打开此电脑,点击管理
2、打开计算机管理后,打开设备管理器。
3、右键点击冲突COM口,选择属性
4、选择端口设置,点击高级
5、更换端口号并确定即可
C#串口打开失败,SerialPort.Open 打开异常的解决方法 问题描述:串口程序运行到serialPort.Open 时,下位机(MCU)程序会卡死,关闭串口后程序重新跑起来。 解决方法,设置串口时,加入以下两行代码: serial....

C# 串口打开失败,SerialPort.Open 打开异常的解决方法

问题描述:串口程序运行到serialPort.Open 时,下位机(MCU)程序会卡死,关闭串口后程序重新跑起来。
解决方法,设置串口时,加入以下两行代码:
serial.DtrEnable=false;//如果为 true,则启用数据终端就绪 (DTR);否则为 false。 默认为 false。 serial.RtsEnable=false;//如果为 true,则启用请求发送 (RTS);否则为 false。 默认为 false。
文档说默认为false,但是去掉这两句就会出问题。个人猜测与所使用的下位机硬件有关。
在此仅提供一个解决问题的方向,顺便记录一下。
问题1:串口打开失败

解决方案:

1、右键“此电脑”选择“管理”
2、查看是否有“端口(COM和LPT)”
a)如果有,并且之前也能下载,看下载软件的端口选时是否正确(当插不同的USB插孔时会有不同的端口号),如果还不行,可以重新拔了再插一下USB下载线,或者重启一下电脑。
b)如果没有“端口(COM和LPT)”,并且之前也不能下载,可以去下载一个驱动安装程序(CH341SER)解决,我用的USB转串口程序已上传可以到关注https://download.csdn.net/download/Boxjod/14683114下载
3、如果以上方法都无法解决,可以先换一根下载线,检查是否是下载线的问题。(有些下载线可能内部损坏,可以通电但是不能作为转串口线)
串口打开失败目前遇到以下几种问题: 第一个问题 第二个问题 第三个问题 前言 Android串口通信一般都是基于Google开源库的,然后在此基础上进行一系列操作的,比如打开串口,通过串口写数据,通过串口读数据,...
目录

前言

Android串口通信一般都是基于Google开源库的,然后在此基础上进行一系列操作的,比如打开串口,通过串口写数据,通过串口读数据,关闭串口;
Google串口库
串口调试工具(需要翻墙)
https://code.google.com/archive/p/android-serialport-api/downloads
串口调试库源码(需要翻墙)
https://code.google.com/archive/p/android-serialport-api/source/default/source
工具首页显示如下

串口打开失败目前遇到以下几种问题:

第一个问题

问题:点击Setup闪退,如果是NullPointerException异常,主要是获取dev目录下的设备号为空;或者说获取的设备号数组为空;获取不到串口号;
可能引起的原因:Android系统防火墙打开了,所以需要关闭;具体步骤如下
解决方法:
a,cmd 中输入adb root 获取root权限
b,adb remount (有的不需要执行这条命令)
c,adb shell
d,setenforce 0 关闭防火墙(注意:重启后失效,需重新设置)
e,getenforce 查看当前权限状态

第二个问题

问题:执行Runtime.getRuntime().exec("/system/xbin/su")或者Runtime.getRuntime().exec("/system/bin/su")获取Process为null抛出SecurityException异常
这里主要是获取su权限然后修改串口号文件的读写权限;
但是使用Runtime.getRuntime().exec("/system/xbin/su")获取su权限(文件),在5.1系统以上版本不能使用了,所以获取的Process为null;
解决方法:
1,让板子厂家把串口权限放开。
2,如果有root权限,可以使用adb 修改串口的读写权限;
2.1,adb root 获取root权限
2.2,adb shell
2.3,cd dev
2.4,chmod 777 tty* (可以指定具体的串口号,tty*是把所有的tty开头的文件权限全部设置为可读可写)

第三个问题

如果没有执行第二个问题的代码,直接调用open方法( private native static FileDescriptor open(String path, int baudrate, int flags) ;)获取FileDescriptor为null;解决办法和二相同;
总结
执行一和二的解决办法,一般就能解决串口打开失败的问题;
如果能帮到你,麻烦加个关注,您的支持,是我最大的动力!
1.串口号是否有错 2.串口号是否存在 查询 adb shell ls /dev/tty*...3.连接线是用的otg还是USB线,一般串口连接采用的都是otg线来进行串口传输,USB只有特定的情况中或发布的user版本才能使用,调试的情况不能用。 ...
一、串口通讯 在linux下cat/dev/ttyS0接收. 但奇怪的是cat/dev/ttyS0没有显示受到认识数据,反而是我的串口调试助手收到了返回!! linux端不用cat/dev/ttyS0读的时候没有返回! 原因:1.windows要发送...
关于大于9的串口打开失败的原因 例如 打开 COM15 CreateFile参数中串口名字是: "\\\\.\\COM15" 而不是"COM15" http://www.advancedvirtualcomport.com/faq.html (该文章还有其他关于串口的问题解答) ...
打开串口时:老是进入“if(!m_serialPort->open(QIODevice::ReadWrite))” if(!m_serialPort->..."打开失败!"; ui->textEdit->append("send$:QIODevice::ReadWrite打开失败!"); } 但是能进入“i
今天遇到串口通信不稳定, 拿到别人机子上测试, 却发现他的串口打不开了. 在网上查原因. 网上说了些原因,比如串口被占用,这个被排除了,我没开其它使用串口的程序. 也有说驱动没安装好,也重新安装了下.还是不行. ...
[img=https://img-bbs.csdn.net/upload/202012/15/1607996812_716833.png][/img]
具体错误信息: serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: ‘/dev/ttyUSB0’ 处理方法: 改变ttyUSB0的执行权限# sudo chmod 777 /dev/...
该楼层疑似违规已被系统折叠隐藏此楼查看此楼package com.example.fandemonew;import com.example.demo.library.SerialPort;import com.example.demo.library.ShareData;import ...
![图片说明]... 从宏晶科技官网上下载了一个驱动还是不行,我是win10系统请问有没有大神youwin10的PL2303驱动,与单片机下载用的,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢!
串口打开失败原因: 1.串口被占用 2.驱动没装好 3.程序中串口打开串口名不对 程序串口名不对造成打开失败的原因: 1.COM0到COM9可直接用 "COMX" 或"COMX:" 打开串口,在设备管理器对应com口的属性->端口设置->高级...
打开失败的情况可能是没有给权限, 进入ADB SHELL之后,cd /dev 进入dev后,ls查看设备是否有ttyS0 1 2 3等串口 输入:setenforce 0 关闭防火墙 输入:chmod 777 /dev/ttyS2(串口文件) 修改权限 这样...
这是我的代码。err一直是2 int _tmain(int argc, _TCHAR* argv[]) { ...	if (HandlePort == ...	printf("串口打开失败\n");	int err = GetLastError();	printf("%d", err);	}	while (true);	return 0; }
转自:https://blog.csdn.net/baidu_37503452/article/details/87004621 // get a handle to the port m_hComm = CreateFile(_T("\\.\COM11"), // communication port string ...GENERIC_READ | GENERIC_WRITE,...
这样就会发生如下的情况:关闭了子页面,在主页面中再次打开这个子页面,这时在页面的load中又创建了串口资源,而这时这个串口实际上是由上一个单例持有着,导致串口打开失败。 解决办法: 在主页面创建串口资源。...
打开串口失败,在输出出窗口报错:在System.IO.IOException 中第一次偶然出现的“System.dll”类型的异常
串口号为COM11,通过WinAPI始终无法打开串口,才发现原因如下: ...
当串口号大于9时则打开失败,GetLastError 返回值为2,错误提示为 系统找不到指定的文件。 原因是设备名不对。