社区
C#
帖子详情
用SerialPort.Write 写串口数据的问题
zyleon
2007-09-05 06:07:48
SerialPort.Write函数写串口数据后,怎么样才能判断数据是否已经全部写到输出缓冲区里面了呢,这个函数应该不是阻塞的吧,发现write后,立即就返回了,但实际上串口还有一些数据没有写进去,怎么样才能知道数据已经全部写到输出缓冲区里面了呢
...全文
891
9
打赏
收藏
用SerialPort.Write 写串口数据的问题
SerialPort.Write函数写串口数据后,怎么样才能判断数据是否已经全部写到输出缓冲区里面了呢,这个函数应该不是阻塞的吧,发现write后,立即就返回了,但实际上串口还有一些数据没有写进去,怎么样才能知道数据已经全部写到输出缓冲区里面了呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liyunpeng_111
2007-12-10
打赏
举报
回复
自已连自己bytetoread()看看接受缓存就可以了
owennol
2007-09-12
打赏
举报
回复
加标志位
你在另外一头Read的时候,只有读到标志位时,才停止读取
nwgogogo
2007-09-12
打赏
举报
回复
用wirteLine试试
Avoid
2007-09-12
打赏
举报
回复
如果数据量大的话,更改wirtetimeout的值
zyleon
2007-09-12
打赏
举报
回复
我跟踪了下,没写完就返回了
Avoid
2007-09-12
打赏
举报
回复
返回了就表明写入了。
默认写入超时为500毫秒
lljfl
2007-09-12
打赏
举报
回复
你用BytesToWrite==0试试
zyleon
2007-09-12
打赏
举报
回复
没有人知道吗
zyleon
2007-09-12
打赏
举报
回复
up
Node.js
串口
读
写
包node-
se
ria
l
port
.zip
node-
se
ria
l
port
是一个 Node.js 的包,用来对
串口
数据
进行读
写
操作。基本示例代码:var
Se
ria
l
Port
= require("
se
ria
l
port
").
Se
ria
l
Port
var
se
ria
l
Port
= new
Se
ria
l
Port
("/dev/tty-usb
se
ria
l1", { baudrate: 57600 }, fal
se
); // this is the openImmediately flag [default is true]
se
ria
l
Port
.open(function (error) { if ( error ) { console.log('failed to open: ' error); } el
se
{ console.log('open');
se
ria
l
Port
.on('data', function(data) { console.log('data received: ' data); });
se
ria
l
Port
.
write
("ls\n", function(err, results) { console.log('err ' err); console.log('results ' results); }); } });罗列所有
串口
:var
se
ria
l
Port
= require("
se
ria
l
port
");
se
ria
l
Port
.list(function (err,
port
s) {
port
s.forEach(function(
port
) { console.log(
port
.comName); console.log(
port
.pnpId); console.log(
port
.manufacturer); }); });
串口
配置:baudRatedataBitsstopBitsparityrtsctsxonxoffxanyflowControlbufferSizepar
se
rencodingdataCallbackdisconnectedCallbackplatformOptions -
se
ts platform specific options,
se
e below.目前已有很多项目在使用这个包进行
串口
处理:Johnny-Five - Firmata ba
se
d Arduino Framework.Cylon.js - JavaScript Robotics, By Your Command.node-l8smartlight (source) A node library to control the L8 Smartlight via Bluetooth or USB
port
firmata Talk natively to Arduino using the firmata protocol.tmpad source - a DIY midi pad using infrared, arduino, and nodejs. Videoduino - A higher level framework for working with Arduinos in node.js.Arduino Drinking Game Extravaganza - AKA "The Russian" a hexidecimal drinking game for geeks by Uxebu pre
se
nted at JSConf EU 2011.Arduino controlling popcorn.js - Controlling a popcorn.js video with an Arduino kit.Robotic JavaScript - The first live pre
se
ntation of the node-
se
ria
l
port
code
se
t as pre
se
nted at JSConf EU 2010.devicestack - This module helps you to repre
se
nt a device and its protocol.reflecta A communication protocol that combines Arduino Libraries and NodeJS into an integrated system.rc4pt-node - Control Popcorntime with an
Se
ria
l
Port
.cpp
HDIL实现
串口
读取,c++实现
串口
的打开、关闭、
写
入以及读取,此文件基于android 9.0系统实现的
C#上位机
串口
编程、Modbus编程
串口
(
Se
ria
l
Port
),也称串行通讯接口(通常指COM口),
串口
通信是指将
数据
一个比特一个比特地逐位进行传输的通信模式。 C#
串口
通信是借助一个
Se
ria
l
Port
类的对象来方便的对
串口
进行读
写
。 Modbus...
C++
Se
ria
l
port
串口
通信类
C++
串口
通信类,此资源是利用C
se
ria
l
Port
类进行
串口
通信的源码
Epson C#编程源码
Epson C#源码
串口
输出 // 实例化 _
se
ria
l
Port
对象,并打开指定
串口
// Create a new
Se
ria
l
Port
object with default
se
ttings. _
se
ria
l
Port
= new
Se
ria
l
Port
(); // Allow the u
se
r to
se
t the approp
ria
te properties. _
se
ria
l
Port
.
Port
Name = comboBox
Port
.Text; _
se
ria
l
Port
.BaudRate = int.Par
se
(comboBoxBaud.Text); //
Se
ria
l
Port
4.0 有很多预先设置好的枚举项,是不是很容易?! _
se
ria
l
Port
.Parity = Parity.None; _
se
ria
l
Port
.DataBits = 8; _
se
ria
l
Port
.StopBits = StopBits.One; _
se
ria
l
Port
.Handshake = Handshake.RequestTo
Se
nd; // TM打印机RTS输出与DTR一样 //
Se
t the read/
write
timeouts _
se
ria
l
Port
.ReadTimeout = 500; _
se
ria
l
Port
.
Write
Timeout = 500; _
se
ria
l
Port
.DtrEnable = true; // TM 打印机出厂默认都是DTR/DSR,非常重要! //_
se
ria
l
Port
.Rt
sE
nable = true; // TM 打印机一侧的CTS(对应PC的RTS),通常不接,所以无意义。 _
se
ria
l
Port
.Open(); // Epson TM打印机在国内销售的包含GB18030大字库的 _
se
ria
l
Port
.Encoding = Encoding.GetEncoding("gb18030"); // 去除打印缓冲开始时候的,"3F 08"两个字节的内容,用“ESC @”初始化打印机来解决 byte[] data = new byte[] { 0x1b, 0x40 }; // 发送二进制
数据
到
串口
_
se
ria
l
Port
.
Write
(data, 0, data.Length);
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章