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的网络 ...
随机推荐
- TensorFlow—张量运算仿真神经网络的运行
import tensorflow as tf import numpy as np ts_norm=tf.random_normal([]) with tf.Session() as sess: n ...
- MyBatis配置数据源的两种方式
---------------------siwuxie095 MyBatis 配置数据源的两种方式 1.配置方 ...
- 39. recover rotated sorted array恢复旋转排序数组
一句话思路:从左边开始的三步翻转法 一刷报错: 不理解start.end是位置随机定义的.i,j是临时变量,为start,end服务 nums.size()区别于nums.length:用于范形变量. ...
- ios 进入后台 一段时间在进入前台 动画消失
http://www.cnblogs.com/YouXianMing/p/3670846.html
- 有关于mfc webbrowser插件的使用
最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的 ...
- /^\s+|\s+$/g 技术 内容
alert(" aa dd ".replace(/^\s+|\s+$/g,'')+"方式的"); //正则表达式解释:分成两部分,^\s+ 以空格开头,\s+$ ...
- extjs 学习一
环境 : eclipse ext tomcat 6 将下载的extjs 解压后全部 导入到项目中 .使用时 <!-- 1.引入样式 2.引入库文件 ,底层驱动 3. ext-all--&g ...
- W-D-S-UART编程
1.协议原理 2.原理框图 3.开发板底板与核心板图 4.开始配置寄存器 a).使相应I/O引脚配置为UART引脚 b).配置数据发送模式 c).设置为中断或查询模式 d).使能串口缓存 e).流量控 ...
- 2018.09.27 codeforces1045D. Interstellar battle(期望dp)
传送门 一道有意思的期望dp. 题意是给出一棵树,每个点最开始都有一个gg的概率,有m次修改,每次修改会把某个点gg的概率更换掉,让你求出每次修改之后整个树被分成的连通块的数量的期望(gg掉的点不算) ...
- 2018.07.06 POJ1556 The Doors(最短路)
The Doors Time Limit: 1000MS Memory Limit: 10000K Description You are to find the length of the shor ...