为什么运行查找串口时提示说com1端口不存在,还有,这个代码有问题么,能不能给改改,谢谢大神们,我的串口通讯不知道怎么理解,很绝望,新手小白求带

Evander. 2020-01-08 09:38:52
Imports System.IO.Ports Public Class Form1 Public WithEvents SerialPort As New SerialPort Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ports As String() = SerialPort.GetPortNames() Dim port As String For Each port In ports ComboBox1.Items.Add(port) 'If Then‘测试过程返回bolean ' '这里就是最后的端口 ' '把可用串口的名字添加到列表中 'End If Next port ' ComboBox1.SelectedIndex = 0 End Sub '串口配置 Private Sub Serial_Port1() '设置串口参数 SerialPort1.BaudRate = 57600 '波特率 SerialPort1.DataBits = 8 '数据位 SerialPort1.StopBits = IO.Ports.StopBits.One '停止位 SerialPort1.Parity = IO.Ports.Parity.None '校验位 End Sub '关闭串口连接 Private Sub SerialPort_Close() Try SerialPort1.Close() '关闭串口 Label3.Text = SerialPort1.IsOpen If SerialPort1.IsOpen = False Then Label2.Text = "串口未连接" Label2.ForeColor = Color.Red End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub '打开串口连接 Private Sub SerialPort1_Open() Try SerialPort1.Open() '打开串口 If SerialPort1.IsOpen = True Then Label2.Text = "串口已打开" Label2.ForeColor = Color.Green End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub '接收数据 Private Sub Sp_DataReceived() Me.Invoke(New EventHandler(AddressOf Sp_Receiving)) '调用接收数据函数 End Sub Private Sub Sp_Receiving(ByVal sender As Object, ByVal e As EventArgs) Dim strIncoming As String Try TextBox2.Text = Str(Val(TextBox2.Text) + SerialPort1.BytesToRead) If SerialPort1.BytesToRead > 0 Then Threading.Thread.Sleep(100) '添加的延时 strIncoming = SerialPort1.ReadExisting.ToString '读取缓冲区中的数据 SerialPort1.DiscardInBuffer() TextBox2.Text = strIncoming End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub '串口查找 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Serial_Port1() SerialPort1_Open() End Sub Private Sub BtnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSend.Click SerialPort1.Write(TextBox1.Text) Sp_DataReceived() End Sub End Class
...全文
2158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
试了一下没发现虾米问题
  • 打赏
  • 举报
回复
wanghui0380 2020-01-10
  • 打赏
  • 举报
回复
没有串口,手动添加的 那说明你机器就没有串口,请使用,“我的电脑”--右键--“管理”--“设备管理”查看有无串口 如果没有串口想调试,请用vspd虚拟串口模拟
yishumei 2020-01-10
  • 打赏
  • 举报
回复
引用 6 楼 weixin_46142047 的回复:
打开的话确实可以显示出com1,因为初始化了,添加到combobox中了,但是发送数据的时候提示串口com1不可用,那这个程序又有什么意义呢
串口com1不可用说明串口资源被其他应用占用了,楼主打开设备管理器查一下端口状态。
Evander. 2020-01-10
  • 打赏
  • 举报
回复
打开的话确实可以显示出com1,因为初始化了,添加到combobox中了,但是发送数据的时候提示串口com1不可用,那这个程序又有什么意义呢
yishumei 2020-01-10
  • 打赏
  • 举报
回复
引用 2 楼 weixin_46142047 的回复:
没有com可以选择,serialport确实是在界面中添加的
没有com可以选择说明楼主所用的系统中就没有串口;楼主找一台有串口的电脑或者安装一个虚拟串口。 serialport1默认串口号是串口1,所以执行Serial_Port1()以后就会报错com1端口不存在。
Evander. 2020-01-09
  • 打赏
  • 举报
回复
没有com可以选择,serialport确实是在界面中添加的
yishumei 2020-01-09
  • 打赏
  • 举报
回复
楼主,程序运行后ComboBox1里有内容吗?SerialPort1是不是在界面添加的控件?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧