C# RS232串口使用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using My_ClassLibrary;
namespace 串口调试助手
{
public partial class Form1 : Form
{
bool m_mac = false;
Class1 mac = new Class1();
public Form1()
{
InitializeComponent();
if (mac.ProductVersion_MacGet(m_mac))
{ }
else
{
MessageBox.Show("No permission to open!", "Hint!", MessageBoxButtons.OK);
this.Close();
}
}
string hms;
SerialPort m_Light_;
Boolean SerialPort_status = false;
public Color AppWorkspace { get; private set; }
private void button2_Click(object sender, EventArgs e)
{
try
{
if (m_Light_ != null && m_Light_.IsOpen == false)
{
m_Light_ = new SerialPort(comboBox1.Text, 19200, Parity.None, 8, StopBits.One);
m_Light_.Open();
button2.Text = "Stop";
button2.BackColor = Color.Red;
SerialPort_status = true;
Send_button.Enabled = true;
Send_Data.Enabled = true;
trackBar1.Enabled = true;
trackBar2.Enabled = true;
trackBar3.Enabled = true;
trackBar4.Enabled = true;
timer1.Enabled = true;
listBox1.Items.Add(hms + "Serial Port Opened!");
}
else
{
m_Light_.Close();
button2.Text = "Open";
button2.BackColor = AppWorkspace;
SerialPort_status = false;
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;
listBox1.Items.Add(hms + "Serial Port Closed!");
}
}
catch (Exception a)
{
listBox1.Items.Add(hms + " [" + a + "]");
MessageBox.Show(a.Message,"Hint!",MessageBoxButtons.OK);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
hms = DateTime.Now.ToString("yyyy:MM:dd hh:mm:ss");
}
string Value1;
private void trackBar1_Scroll(object sender, EventArgs e)
{
if (SerialPort_status)
{
try
{
int trackBar = Convert.ToInt16((sender as TrackBar).Tag);
switch (trackBar)
{
case 1:
Value1 = "SA0" + trackBar1.Value.ToString("000") + "#";
CH1_label.Text = trackBar1.Value.ToString("000");
break;
case 2:
Value1 = "SB0" + trackBar2.Value.ToString("000") + "#";
CH2_label.Text = trackBar2.Value.ToString("000");
break;
case 3:
Value1 = "SC0" + trackBar3.Value.ToString("000") + "#";
CH3_label.Text = trackBar3.Value.ToString("000");
break;
case 4:
Value1 = "SD0" + trackBar4.Value.ToString("000") + "#";
CH4_label.Text = trackBar4.Value.ToString("000");
break;
}
m_Light_.Write(Value1);
listBox1.Items.Add(hms + Value1);
}
catch (Exception a)
{
MessageBox.Show(a.Message, "Hint!", MessageBoxButtons.OK);
}
}
else
{
MessageBox.Show("Serial Port Not Open!","Hint!",MessageBoxButtons.OK);
}
}
private void Send_button_Click(object sender, EventArgs e)
{
if (SerialPort_status && Send_Data.Text != string.Empty)
{
string m_Send_Data = Send_Data.Text;
m_Light_.Write(m_Send_Data);
listBox1.Items.Add(hms + m_Send_Data);
}
else
{
MessageBox.Show("Not Data!!!","Hint!",MessageBoxButtons.OK);
}
}
private void Form1_Load(object sender, EventArgs e)
{
Send_button.Enabled = false;
Send_Data.Enabled = false;
trackBar1.Enabled = false;
trackBar2.Enabled = false;
trackBar3.Enabled = false;
trackBar4.Enabled = false;
timer1.Enabled = false;
}
private void serialPort_DataReceived()
{
string str = "";
do
{
int count = m_Light_.BytesToRead;
if (count <= 0)
{
break;
}
byte[] readBuffer = new byte[count];
Application.DoEvents();
m_Light_.Read(readBuffer, 0, count);
str += System.Text.Encoding.Default.GetString(readBuffer);
}
while (m_Light_.BytesToRead > 0);
{
listBox1.Items.Add(str);
}
}
}
}
C# RS232串口使用的更多相关文章
- Uart串口与RS232串口的区别
Uart指的是TTL电平的串口:RS232指的是RS232电平的串口. TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平. Uart串口的RXD ...
- 自制单片机之十七……PC与单片机RS-232串口的通讯和控制
这次我们来试着一步步的去掌握PC与单片机通过RS-232进行通讯和控制. 先说说我硬件的情况.我用的PC是个二手的IBM240小本本,十寸屏,赛扬400,机子很老了.但也有它的优点:1.串口,并口,P ...
- 自制单片机之七……RS232串口
在我的板子上其它的部分都已完成了,现在就剩下RS232串口了.串口对于单片机很重要,有了它就可以和PC通信了,可以用PC来控制你的单片机,也可以将你单片机上采集的数据传到PC上. 留的位置好像有点挤. ...
- RS232串口通信
RS232串口经常使用在PC机与FPGA通信中,用于两者之间的数据传输,因为UART协议简单.易实现,故经常使用. DB9接口只需要使用3根线,RXD(2).TXD(3)和GND(5),如下图所示.而 ...
- RS232串口通信详解
串口是计算机上一种非常通用的设备通信协议. ---------------------------------串口的引脚定义: 9芯 信号方向来自 缩写 描述 1 调制解调器 CD 载波检测 2 调制 ...
- SIM900A 通过RS232串口进行短信的发送。
一.基本数据 1.SIM900A模块支持RS232串口和LVTTL串口.保留了232口,在学习或者开发时可以监听51低端单片机和模块指令执行情况,能更快的找出原因,节省开发和学习的时间. 2.此模块供 ...
- RS232串口的Windows编程纪要
再次是一篇入门文,各路神仙退散. 直接进入主题,又不是历史课,关于RS232那些前世今生的故事就不摆了. 硬件链接 首先以9针小口为例(大口应当只能去博物馆看了吧)看一下管脚排布,其实RS232本身没 ...
- 在Linux中如何使用命令进行RS-232串口通信和数据包解析
文章首发于浩瀚先森博客 1. 获取串口号 在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现.也就是说我们可以用访问文本文件的命令来访问它们. a. 一般串口都是以/de ...
- (原创)RS232串口信号定义
好久没用动硬件了,串口更是好久没用用了. 曾经接口信号记得很清楚,久了,忘了. 今天,重新回顾,笔记记下. DB9接口分公头和母头,公头即插针头,电脑机箱上多少公头.母头即插孔座. 合理的硬件设计均以 ...
- 由RS-232串口到PROFIBUS-DP总线的转换接口设计
转自:http://gongkong.ofweek.com/2013-08/ART-310007-11001-28716256_2.html 1.PROFIBUS-DP网络协议 PROFIBUS的网络 ...
随机推荐
- Metropolis(多源点最短路)
Metropolis https://www.nowcoder.com/acm/contest/203/I 题目描述 魔方国有n座城市,编号为.城市之间通过n-1条无向道路连接,形成一个树形结构. 在 ...
- python之ftp作业【还未完成】
作业要求 0.实现用户登陆 1.实现上传和下载 3.每个用户都有自己的家目录,且只可以访问自己的家目录 4.对用户进行磁盘配额,每个用户的空间不同,超过配额不允许下载和上传 5.允许用户在指定的家目录 ...
- swift OC混编工程,xcode断点调试,控制台左侧只有变量名称不显示值,右侧输入po命令,打印除一堆提示
断点调试 (lldb) po 变量名warning: Swift error in module 项目名.Debug info from this module will be unavailable ...
- [leetcode]295. Find Median from Data Stream数据流的中位数
Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...
- IBM MQ + WebSphere + Spring JMS配置方法
IBM MQ + WebSphere + Spring JMS配置方法 首先要在WAS里面配置IBM MQ作为JMS消息的提供者,在WAS管理控制台: Resources->JMS Provi ...
- db2 统计信息 runstats
1.runstats的语法:runstats on table [模式名].[表名] with distribution and detailed indexes all注意:你可以在所有列上,或者仅 ...
- JVM 系列 ClassLoader
JVM 系列()ClassLoader 在前面一节中,主要介绍了 Class 的装载过程,Class 的装载大体上可以分为加载类.连接类和初始化 3 个阶段.本小节将主要介绍绍 Java 语言中的 C ...
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验 (解决办法) http://blog.csdn.net/biedazhangs ...
- hdu-1107(模拟题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1107 注意:1.路线是要反向的,走不通就反向: 2.输入输出全部是整形 3.攻击力不断变化 #incl ...
- 22. Valuing Water 珍惜水资源
. Valuing Water 珍惜水资源 ① Humanity uses a little less than half the water available worldwide.Yet occu ...