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的网络 ...
随机推荐
- Python sum() 函数
Python sum() 函数 Python 内置函数 描述 sum() 方法对系列进行求和计算. 语法 以下是 sum() 方法的语法: sum(iterable[, start]) 参数 ite ...
- 前端基础之Bootstrap
1. 页面加载完之后才执行的JS代码 1. DOM方式 window.onload = function(){} 2. jQuery方式 ...
- Hibernate一级缓存(补)
------------------siwuxie095 什么是缓存 缓存是介于应用程序和永久性数据存储源(如:硬盘上的 ...
- oracle 使用正则表达式获取字符串中包含的数字
select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;
- SQL2000清除SQL日志
1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收 ...
- dede数据库内容替换,去掉文章内容中的img标签
1.织梦已经给我们准备好了数据库内容替换工具,在采集->批量维护->数据库内容替换 2.织梦的文章内容一般在放在dede_addonarticle表body字段中. (1).选择好数据表和 ...
- 用java创建UDF,并用于Hive
典型代码如下: 导入UDF类: import org.apache.hadoop.hive.ql.exec.UDF; public class UpperCassUDF extends UDF{ pu ...
- tp5在apache下能访问,但放到nginx下报404
index index.php index.html index.htm; if ( -f $request_filename) { break; } if ( !-e $request_filena ...
- linux下第一个C程序
首先,用vi编辑器新建一个文件 $vi hi.c 输入以下的程序(怎么用vi不说了) #include <stdio.h> int main() { printf("hello. ...
- sklearn中的分词函数countVectorizer()的改动--保留长度为1的字符串
1简述问题 使用countVectorizer()将文本向量化时发现,文本中长度唯一的字符串会被自动过滤掉,这对于我在做的情感分析来讲,一些表较重要的表达情感倾向的词汇被过滤掉,比如文本'没用的东西, ...