C# 串口接收不到数据 [问题点数:40分,结帖人f117c]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:5
结帖率 100%
Bbs1
本版专家分:5
Bbs1
本版专家分:5
串口不到数据或者收到错误数据 串口乱码总结
1、查看你使用的USB转<em>串口</em>是3.3V的<em>串口</em>还是5V<em>串口</em>,如果发送方使用的是3.3V然后你使用的USB转<em>串口</em>是5V是可以收到<em>数据</em>的但收到的<em>数据</em>都是错误的 2、查看波特率、奇偶校验、停止位等是否设置正确。 3、如果是STM32,查看寄存器设置是否正确,时钟是否使能 4、查看是否将TX接成RX(很可能两根线接反了), 5、查看线是否是好的,可以换线试试,查看是否存在虚焊现象 6、查看驱动是否...
C#串口类SerialPort收不到数据解决办法
最近再做一个项目,<em>串口</em>通信,但是只能受到一次<em>数据</em>后面怎么也收<em>不到</em>,我想了好久?难道微软提供的系统函数有问题?测试好久,发现居然是对方发送<em>数据</em>过快导致收<em>数据</em>回调函数无响应,我推测内存回调时候发生异常或者卡死,因为对方连发后软件直接卡死无响应,后来测试时间放慢后就正常了,看了很多论坛帖子发现都不是回答很清楚或者不能解决问题。所以我从实际中给出具体方法: (1)让对方减慢发送<em>数据</em>速度   (2)如...
STC1C5A60S2第二串口死活接收不到数据……
测试了一下午了,死活收<em>不到</em><em>数据</em>…… 下面附官方给的程序。 发送中断都能进,<em>接收</em>就是进不去。 把PCA映射到P4口去了,也还是不行, 官方的QQ回复就更…… 下面是官网给的代码,希望大佬能找到原因……换了一片还是不行,总不能说这批全坏了吧…… #include "reg51.h" #define FOSC 11059200L #define BAUD 115200 #define NONE_...
串口助手显示接收数据,但是界面没数据显示
ATOS实验箱中测量节点温度,并显示出来,程序运行正确,也成功下载,但是在<em>串口</em>助手却只能显示<em>接收</em>到<em>数据</em>,界面上啥都没有,改成16进制显示,界面上显示的全部是0,不知道是是怎么回事?求大神解答~
串口通信接收不到数据却可以发送
<em>串口</em>通信的程序,用<em>串口</em>调试助手通信,可以向调试助手发<em>数据</em>,调试助手也可以<em>接收</em>,但是,用调试助手发送<em>数据</em>,这边却<em>接收</em><em>不到</em>,我想是不是OnComm函数程序的问题,但是对照书上的,也没错的地方,或者是其他方
串口通信----串口接收接收不到数据
在进行<em>串口</em>调试时,<em>数据</em>发送没有问题,da
串口已经打开但是接收不到数据
有两个问题,分别对应两个<em>串口</em>设备与电脑的连接问题: 1、第一个<em>串口</em>设备的问题是:每次打开<em>串口</em>设备以后,调试程序<em>串口</em>打开成功,但是程序运行后读取<em>不到</em><em>数据</em>。如果事先打开<em>串口</em>调试程序,点击手动发送以后就可以
串口接收不到数据
<em>串口</em>和单片机通信,以前可以<em>接收</em>到<em>数据</em>,最近收<em>不到</em>了;有时调试的时候commevent值为2 ,可以看到input里面有<em>数据</em>,但是用一个string字符串取出来后就什么都没有了;有时 Select Ca
关于linux串口通信中接收不到数据的问题!!
最近有个任务就是通过RS232<em>串口</em>采集<em>数据</em>并处理。刚接触<em>串口</em>通信,参考网上的资料写了一份如下代码,运行时发现能打开<em>串口</em>,但是一直显示<em>接收</em><em>不到</em><em>数据</em>。请各位大神指导下,谢谢。 #include<stdio
关于串口通信数据接收失败的问题
那一根<em>数据</em>线,分别连了两台电脑的COM2口 通过发送端向端口写<em>数据</em> ::WriteFile(m_hComDev, leftdata, leftlength,(unsigned long*)&rc, N
C#读写串口数据,读不到
private bool CheckPortSetting()//检查<em>串口</em>是否设置 { if (comboBox7.Text.Trim() == "") return false; if (comb
串口通讯:接收不到完整的数据
用mscomm<em>串口</em>控件, 设置<em>接收</em>20个字节时,触发事件, 但有事件触发,但收到的<em>数据</em>不足20个字节。 用BusHound监控查看,发现,是分二段<em>数据</em>还回。。 请问下,这种情况要怎么处理? :会提示:
C#串口通讯接收不到数据(在线等。。)
我的软件是与PDA通过<em>串口</em>通讯。 我用的是<em>C#</em>语言,<em>串口</em>通讯用的.NET的SerialPort类。 我的SerialPort打开了,为什么有时候我的软件<em>接收</em><em>不到</em>PDA发送的<em>数据</em>呢? 用<em>串口</em>调试助手与
C#使用serialport串口发送和接收接收不到返回数据
自己写的一个<em>串口</em><em>接收</em>发送的小程序,向<em>串口</em>发送命令是应该有返回信息的 可是写的程序运行没有任何返回信息,求解 public partial class Form1 : Form { SerialPort
C#串口接收数据出错,是否是响应速度跟不上?
我使用VS2013编写了一个基于<em>串口</em>的上位机程序,我是做单片机应用的,不太懂软件的编写,现在就是想做一个电脑端通过<em>串口</em>向单片机发送<em>数据</em>,单片机在<em>接收</em>到<em>数据</em>后再将<em>数据</em>通过<em>串口</em>原样的返回给电脑端,电脑端接
求教!串口通信接收不了数据
<em>数据</em>可以发出去,但是就是<em>接收</em><em>不到</em>。。。。 代码: BOOL CcomDlg::OnInitDialog() { //1 打开<em>串口</em> hCom = CreateFile(_T("COM5"), GENER
关于C#串口数据 打开关闭接收不到数据的问题
是这样的,我写了一个<em>C#</em><em>接收</em><em>串口</em><em>数据</em>的程序,大致结构是这样的 mySerialPort.PortName = "COM1"; mySerialPort.BaudRate = 9600; mySeria
C#编写的串口读取,接收不到数据怎么回事
我用的是<em>C#</em>的,SerialPort控件来读取<em>串口</em><em>数据</em>,用虚拟<em>串口</em>实验没问题了,但是我用单片机通过<em>串口</em>发送<em>数据</em>时,这就接<em>不到</em>了,可是我用<em>串口</em>助手就能读出来<em>数据</em>,有人知道这是怎么回事吗。 private
C#串口接收不同步问题
第一次接触<em>串口</em>通信 我在上位机发送一个指令,然后下位机会返回一个信息。然后上位机根据信息判断。 public void FICCard_DataReceived(object sender, Seri
c#串口数据读取不全问题
![正确的NFC贴片值](https://img-ask.csdn.net/upload/201611/30/1480487915_614568.png) 我自己写的值和代码 private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { System.Threading.Thread.Sleep(100);//延时100ms等待<em>接收</em>完<em>数据</em> // this.Invoke就是跨线程访问ui的方法 this.Invoke((EventHandler) (delegate { if (isHex == false) { tbxRecvData.Text += sp.ReadLine(); } else { Byte[] ReceivedData = new Byte[sp.BytesToRead]; sp.Read(ReceivedData, 0, ReceivedData.Length); String RecvDataText = null; for (int i = 0; i < ReceivedData.Length; i++) { RecvDataText += (" " + ReceivedData[i].ToString("X2") + ""); } tbxRecvData.Text += RecvDataText; } sp.DiscardInBuffer();//丢弃<em>接收</em>缓冲区<em>数据</em> })); } ![图片说明](https://img-ask.csdn.net/upload/201611/30/1480488296_546399.png)
串口有时接收不到数据是怎么回事?
大家好,我用COM1<em>接收</em><em>数据</em>,平常都没问题,就是偶尔会突然没有<em>数据</em>发送过来,用<em>串口</em>精灵也<em>接收</em><em>不到</em>任何<em>数据</em>,这时我只要把COM1停用然后再启用就又可以正常<em>接收</em><em>数据</em>了。 小弟对<em>串口</em>了解很浅,问题又很急,向
C# 解决串口接收数据不完整
<em>C#</em> 解决<em>串口</em><em>接收</em><em>数据</em>不完整 引用链接   http://www.cnblogs.com/haofaner/p/3402307.html   使 用缓存机制完成。首先通过定义一个成员变量List&amp;lt;byte&amp;gt; buffer = new List&amp;lt;byte&amp;gt; (4096);用来存放所有的<em>数据</em>,在<em>接收</em>函数里,通过buffer.AddRange()方法不断地将<em>接收</em>到的<em>数据</em>加入...
1、C#编写串口助手
1、<em>C#</em>基本操作步骤。 ①新建项目: VS---新建---项目---选择<em>C#</em>下面的Windows窗口应用程序,输入项目&quot;名称&quot;、选择保存&quot;位置&quot;,点确定。 ②添加按钮(添加button控件): 工具箱窗口选择&quot;button&quot;---拖动到&quot;Form1.cs[设计]&quot;,&quot;button&quot;的属性窗口, &quot;name&quot;是button的唯一名称标识,&quot;text&quot;是butto
使用C#及Visual Studio 2019写一个简单的串口助手
使用<em>C#</em>及Visual Studio 2019写一个简单的<em>串口</em>助手(萌新笔记)简单介绍设计过程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流...
c#串口收发数据
c#<em>串口</em><em>接收</em>发送<em>数据</em>  重要的几个函数 构造函数 InitializeComponent(); //为<em>串口</em>绑定<em>接收</em><em>数据</em>事件 this.serialPort1.DataReceived += new SerialDataReceivedEventHandler
C# 串口接收数据
using System; using System.IO.Ports; using System.Text; using System.Threading; using System.Windows.Forms; namespace Serial { public partial class Form1 : Form { public Form1() ...
c#串口为何一次收到的数据不全啊。
每次只收到设备发过来的一部分<em>数据</em> 要收几次才是完整的 代码如下。 Sport.PortName = ApplicationSettings.PortName ; Sport.BaudRate = A
C#串口数据读取,显示不出数据,可以读到,新手求大神
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin
C#串口通信中如何接收串口数据
刚刚学习<em>C#</em><em>串口</em>通信,不知道怎么<em>接收</em><em>数据</em>,从网上查了的代码页看不懂,那个朋友可以帮帮忙 serialPort1.DataReceived += new SerialDataReceivedEventH
C#串口通信接收数据部完整
自己做可发送<em>接收</em>的<em>串口</em>通信,发5代码个字节<em>数据</em>(FA FB FC FD FE),每次只能接2-3个<em>数据</em>(FA FB)。再按发送键就能接(FC FD FE),以此类推。求大神帮忙。发送<em>接收</em>代码如下: 发
C#实现串口数据循环发送
<em>C#</em>实现<em>串口</em><em>数据</em>循环发送(待更) 1.起始 最近在公司做上位机和设备进行<em>串口</em>通信的项目,自己就写了个<em>串口</em>通信工具,今天是第三天,刚刚实现<em>串口</em>的双向通信。 2.软件的架子 先进行界面设计,将需要的功能放上来。 主要功能包括:打开<em>串口</em>、关闭<em>串口</em>,向<em>串口</em>发送<em>数据</em>以及从<em>串口</em>读取<em>数据</em>。在发送和<em>接收</em>的文本框里面,我加上了切换16进制的功能,方便调试。
C#串口发送数据回复问题。
写了一个<em>串口</em>通信的程序,设计一个协议。 目前我通过<em>C#</em><em>串口</em>上位机给设备发送一个0xFF 0xB5的命令, 设备会回复 0xFF 0xB5 0x00 的消息显示在接受的textbox中。 然后开始发送下一个消息。 <em>C#</em>怎么判断设备回复了消息,这块代码改怎么写??
C#串口通信-向串口发送数据,同步接收返回数据
最近写<em>C#</em><em>串口</em>通信程序,系统是B/S架构。SerialPort类有一个DataReceived事件,用来<em>接收</em><em>串口</em>返回的<em>数据</em>,但这种方式在C/S架构下很好用,但B/S就不好处理了。所以写了一个同步模式<em>接收</em>返回<em>数据</em>的方法,不使用DataReceived事件。经过测试,可以正常使用(不支持多线程调用)。     一、Machine类     1、Machine类有一个静态变量,定义如下: pr
c#串口数据接收处理大纲
c#<em>串口</em><em>数据</em><em>接收</em>处理大纲
C#串口通信—向串口发送数据,同步接收返回数据
最近写<em>C#</em><em>串口</em>通信程序,系统是B/S架构。SerialPort类有一个DataReceived事件,用来<em>接收</em><em>串口</em>返回的<em>数据</em>,但这种方式在C/S架构下很好用,但B/S就不好处理了。所以写了一个同步模式<em>接收</em>返回<em>数据</em>的方法,不使用DataReceived事件。经过测试,可以正常使用。 一、MachineFactory类 为什么使用工厂类:售货机由不止一个厂家提供,接口协议都不...
C#串口通信发送数据
1 发送<em>数据</em> 需要2个<em>串口</em> http://www.openedv.com/thread-228847-1-1.html 下载源文件File_Protocol_Test.rar 转载于:https://www.cnblogs.com/code1992/p/8909765.html
C# 串口通信Winfrom 程序,检测串口 发送和接收消息 亲测可用
<em>C#</em> <em>串口</em>通信Winfrom 程序,检测<em>串口</em> 发送和<em>接收</em>消息 亲测可用
C#串口通信,包括打开串口接收发送数据
public partial class Form1 : Form { public Form1() { InitializeComponent(); } SerialPort port1 = new
C# 串口的初始化 以及通过串口的收发数据
<em>C#</em> <em>串口</em>的初始化 以及通过<em>串口</em>的收发<em>数据</em> <em>C#</em> <em>串口</em>的初始化 以及通过<em>串口</em>的收发<em>数据</em>
C#串口通信发送数据问题
<em>串口</em>通信<em>数据</em>发送,除了可用字节数组byte[],还可以用其他的什么吗?
串口通讯接收不到数据
<em>串口</em>助手可以正常<em>接收</em>电子天平的<em>数据</em>,也能正常发送,rs232接口。但是当连接ph计时,<em>接收</em><em>不到</em>ph计的<em>数据</em>,这是为什么,ph计用的是梅特勒的。各种<em>串口</em>助手都试过了
C#网页读COM口数据问题
页面代码: server
labview接收串口通信数据不正常的解决办法
在昨天我写了采用挨个数发送的方法获得了正常的上位机<em>数据</em>。 但是在上位机中,<em>数据</em>显示并不正常。 如:1234会依次显示1234;1;2;3;4; 我的解决办法是:在<em>接收</em>到的<em>数据</em>之后加一个选择结构,如果<em>接收</em>到的数字&amp;gt;100,则显示<em>数据</em>。 ...
串口通讯问题 接收不到数据
帮帮忙 弄了好久还没弄好 这是easyarm2103的 <em>串口</em>通讯uart 为什么我的 <em>串口</em>调试工具都<em>接收</em><em>不到</em>传送过来的<em>数据</em> 以下是代码 非常感谢大家 代码是周立功的 easyarm教材上的程序 #in
VB 串口接收不到数据(急!)
VB与单片机的通信 运行结果Text1 , Text2 <em>接收</em>到“A”,Text3 却没有收到,即使多发几个也一样没收到,请各位高手帮帮小弟,感激不尽!!(程序如下) 单片机发送用MATLAB仿真过,没
C# 串口接收不到数据 请教
我用<em>串口</em>调试精灵往<em>串口</em>发送<em>数据</em>时侯能够<em>接收</em>到<em>数据</em>,但自己写的代码发送给<em>串口</em><em>数据</em>后,没有任何<em>数据</em>返回。用CommMonitor监听下来的结果是正常情况IOCTL_SET_CHAR :Chars Eof:
C#串口通信 能发数据接收不到数据 怎么回事?
刚学<em>C#</em><em>串口</em>编程,从网上下了几个例子测试,但都是能发<em>数据</em>而<em>接收</em><em>不到</em><em>数据</em>,代码应该没什么问题,用一台电脑测试的,<em>串口</em>2,3脚串联了,就是<em>接收</em><em>不到</em><em>数据</em>,郁闷,哪位高手知道的请帮帮忙吧,谢啦!
RS232 串口接收不到数据
//发送<em>数据</em>正常,在HyperTerminal中可以<em>接收</em>显示 //从HyperTermianl发送,READBYTE()就是没有结果,请各位大侠不吝赐教. // RS232.cpp : Defines
串口读取不到数据
1、有一个<em>串口</em>设备,用RS485-USB接口读取,用笔记本(windows,linux)读取都是可以的。 2、换了一台笔记本,不插电源,只用笔记本的电池供电,可以读取。可是插上电源之后立马就读<em>不到</em><em>数据</em>
C# serialport 串口 接收数据不全
使用serialport 向设备发送请求并获得响应<em>数据</em> SerialPort sp = new SerialPort(); sp.PortName = "COM2"; sp.BaudRate = 24
急!串口开发,SerialPort接收不到数据
我这几天在做<em>串口</em>通讯的开发,使用<em>串口</em>助手能够<em>接收</em>到<em>串口</em>发送过来的<em>数据</em>,但是用SerialPort就<em>接收</em><em>不到</em><em>数据</em>。定时读取获得的是空字符串,使用DataReceived事件则不能触发。 程序如下: us
C#的serialPort已经打开,但是接收不到数据??
使用<em>C#</em>的serialPort控件<em>串口</em>通信,单独做个小的测试程序,用<em>串口</em>助手调试,<em>接收</em>发送都没有问题,但是把这个功能放到我要编写的大程序里就只可以打开<em>串口</em>,不能<em>接收</em>到<em>数据</em>,请问这个是怎么回事,怎么解
为什么调用不了串口接收函数呢 只能发送 不能接收? 本人菜鸟,求指点
public partial class Form1 : Form { //SerialPort sp1 = new SerialPort();//声明一个<em>串口</em>类 bool isOpen = false;//打开<em>串口</em>标志位 bool isSetProperty = false;//属性设置标志位 bool isHex = false;//十六进制显示标志位 public Form1() { //sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived); InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.MaximumSize = this.Size; this.MinimumSize = this.Size; this.MaximizeBox = false; for (int i = 1; i < ReceiveData.Length; i++) { RecvDataText += ("0x" + ReceiveData[i].ToString("X2") + " ");//X为十六进制 2为每次都是两位数 这样看着整齐 } tbxRecvData.Text += RecvDataText; } sp1.DiscardInBuffer();//丢弃<em>接收</em>缓冲区的<em>数据</em> })); } private void btnSend_Click(object sender, EventArgs e) { //写<em>串口</em><em>数据</em> if (isOpen) { try { sp1.WriteLine(tbxSendData.Text); } catch { MessageBox.Show("发送<em>数据</em>时发生错误!", "错误提示"); return; } } else { MessageBox.Show("<em>串口</em>未打开!", "错误提示"); return; } //检测要发送的<em>数据</em> if (!CheckSendData()) { MessageBox.Show("请输入要发送的<em>数据</em>!", "错误提示"); return; } } private void btnOpenCOM_Click(object sender, EventArgs e) { if (isOpen == false) { if (!CheckPortSetting()) { MessageBox.Show("<em>串口</em>未设置!", "错误提示"); return; } if (!isSetProperty)//<em>串口</em>未设置则设置<em>串口</em> { SetPortProperty(); isSetProperty = true; } try//打开<em>串口</em> { sp1.Open(); isOpen = true; btnOpenCOM.Text = "关闭<em>串口</em>"; //<em>串口</em>打开后则相关的<em>串口</em>设置按钮便不可再用 cbxCOMPort.Enabled = false; cbxBaudRate.Enabled = false; cbxDataBits.Enabled = false; cbxParity.Enabled = false; cbxStopBits.Enabled = false; rbnChar.Enabled = false; rbnHex.Enabled = false; } catch { //打开<em>串口</em>失败后,相应标志位取消 isSetProperty = false; isOpen = false; MessageBox.Show("<em>串口</em>无效或已被占用!", "错误提示"); } } else { try //打开<em>串口</em> { sp1.Close(); isOpen = false; isSetProperty = false; btnOpenCOM.Text = "打开<em>串口</em>"; //关闭<em>串口</em>后,<em>串口</em>设置选项便可以继续使用 cbxCOMPort.Enabled = true; cbxBaudRate.Enabled = true; cbxDataBits.Enabled = true; cbxParity.Enabled = true; cbxStopBits.Enabled = true; rbnChar.Enabled = true; rbnHex.Enabled = true; } catch { MessageBox.Show("关闭<em>串口</em>时发生错误!", "错误提示"); } } } private void btnCleanData_Click(object sender, EventArgs e) { tbxRecvData.Text = ""; tbxSendData.Text = ""; tbxSendData.Focus(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { System.Environment.Exit(0); }
Linux串口通信中一种接收不到数据的问题的解决
转载来源:嵌入式系统之初学者点滴 (百度空间) 原文 在这篇文章()中,实现了Linux环境下的<em>串口</em>读写操作,程序也运行成功了。但是再进一步测试时发现,如果开机之后直接如上文中所说,分别运行读程序和写程序,再用导体同时触碰<em>串口</em>的2、3针的话。此时将显示写入<em>串口</em>成功,但是读<em>串口</em><em>数据</em>失败。 这个奇怪的问题当时之所以没有被发现出来,是因为在这之前,曾经打开过一次minicom。后来实验
串口接收数据程序,单步调试可以收到数据,但是直接运行却收不到
我是通过另外一台电脑上的<em>串口</em>调试工具发送<em>数据</em>,每100毫秒发送一次,发送内容是china 单步调试的时候可以<em>接收</em>到<em>数据</em>,但是直接运行就收<em>不到</em><em>数据</em>了! 一下是单步调试的截图、直接运行的截图和源代码 图一
Java RXTX串口可以发送数据,但接收不到数据
刚接触<em>串口</em>,写了以下代码。利用软件虚拟了两个<em>串口</em>,运行以下代码时,可以发送<em>数据</em>,却不<em>接收</em><em>不到</em><em>数据</em>,多次测试,发现监听(serialEvent)一直进不去,求各位大大指教。 package com.re
VB串口接收不到数据
'发送<em>数据</em> Private Sub senddata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
stm32串口接收不到正确数据
cc2530通过<em>串口</em>以数组方式发送4个<em>数据</em>,定义地是unsigned char类型 下面是stm32提供的一个<em>串口</em>接<em>接收</em>函数 uint16_t USART_ReceiveData(USART_Type
关于串口接收到的数据怎么处理呢?求大神
各位好! 我通过<em>串口</em><em>接收</em>到的原始<em>数据</em>怎么解析 看下面图片 设备上显示的是1540 我怎么解析收到的<em>数据</em> 只显示1540 以下是我<em>接收</em>到并处理的<em>数据</em> 正常<em>接收</em>没有转换的<em>数据</em>: +001540 01B
求大神解释。。。串口接收返回数据的问题???接收不到返回数据
在IntentService里写的俩方法, 发送方法是可以的 但是怎么<em>接收</em>返回<em>数据</em>??? <em>接收</em>方法一直收<em>不到</em> 广播发出去了,但没有<em>数据</em>去更新UI //发送方法 private void send(){
安卓串口通信接收数据不到
1、在安卓模拟器上通过电脑虚拟<em>串口</em>给<em>串口</em>调试软件发送<em>数据</em>可以正常发送,并且没有长度限制 2、用<em>串口</em>调试软件给安卓模拟器发送<em>数据</em> 当字节数少于8个时 <em>数据</em>可以正常发送和<em>接收</em> 但是超过8个时模拟器就卡死
STM32之USART串口接收数据处理
//原帖http://bbs.elecfans.com/forum.php?mod=viewthread&tid=445463 //在学习过程中发现几处编译错误,并改正; //主要贴出定义、和中断函数部分; uint8_t usart_rx_buf[5][40];    //<em>接收</em>缓冲,最大40个字节 uint8_t usart_rx_temporary[40]; //<em>数据</em>保存暂存器,最
串口通信——接收串口数据并处理(C语言)
<em>串口</em>通信——<em>接收</em><em>串口</em><em>数据</em>并处理(C语言)
串口接收不定长数据的几种方式
在阅读本文前,你需要先做到<em>串口</em>成功<em>接收</em>一个<em>数据</em>(相信这一点是很简单的) 这几天简单总结了一下用<em>串口</em>怎么<em>接收</em>一帧<em>数据</em>的办法,个人使用的有三种,下面逐一介绍: 第一种:使用中断的方式; 这种在<em>数据</em><em>接收</em>不频繁状态下使用。简单易实现。既然是使用中断,所以自然需要硬件的支持,比如stm32就可以这么做,具体操作见我之前的博客stm32<em>串口</em>中断<em>接收</em>一帧<em>数据</em> 8位单片机估计是没有的,嵌入式32位的处
STM32串口发送数据接收数据方式总结
之前写了篇关于ESP8266使用AT指令进行互相通讯的实验,在写STM32<em>串口</em>接发<em>数据</em>的程序中,觉得有必要将之前学的有关于<em>串口</em>方面的使用经历加以总结。 <em>串口</em>发送<em>数据</em>: 1. <em>串口</em>发送<em>数据</em>最直接的方式就是标准调用库函数。void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); 第一个参数是发送...
串口接收数据与分析处理
一、每接受完一个字节的<em>数据</em>,进入一次中断。 u8 USART_RX_BUF[USART_REC_LEN]; 【注】:在STM32例程中,定义  u8 USART_RX_BUF[USART_REC_LEN];    把一个字节的<em>数据</em>放入数组中,u8是8位 unsigned int型,u8就是一个字节,一个字节8位。 参考:    bit、byte、位、字节、汉字的关系     ...
串口接收数据有误,求指导!
上位机给<em>串口</em>发送<em>数据</em>,单片机通过<em>串口</em><em>接收</em>到的<em>数据</em>以什么结尾@TOC <em>串口</em><em>接收</em>到<em>数据</em>后对<em>数据</em>最后几位进行判断,总是进不去判断函数是什么原因,<em>串口</em><em>接收</em>到<em>数据</em>后会不会自动加什么标志,求大佬指导? <em>串口</em>通过中断<em>接收</em>到<em>数据</em>后通过判断最后几位使标志位置1,不过总是进不去判断函数 这是<em>串口</em>助手发送的<em>数据</em> 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你...
c#串口上位机通信问题,无法触发接收数据事件的原因
碰到一个很奇怪的事情,用<em>C#</em>自带的<em>串口</em>类,实例化对象后,注册<em>数据</em>回调事件,然后,按照通信原则,设置好相关的<em>数据</em>格式,打开<em>串口</em>,然后发送。发送是成功的,这个在助手上测试过,因为有返回<em>数据</em>,所以能显示出来
关于C#串口接收数据的判断问题
这里是一个<em>串口</em>程序,有一个"读取<em>数据</em>"按钮,其功能是等待数秒,如果收到<em>数据</em>则会弹出“1”,未收到则会弹出"0"(就这个不知道怎么写),现在<em>数据</em>完全可以读取了,但不知道:如何判断<em>串口</em>是否触发<em>接收</em><em>数据</em>的事
C#串口数据DataReceived监听不能快速反应
各位老师同仁大家好,我是一个新手,今天学习<em>C#</em><em>串口</em>时候碰到了一个问题,还望大家指导,先谢谢了。 具体问题我在windowsForm中用一个Button控件点击一下发送<em>数据</em>,用TEXTBOX显示读取的下
C#实现串口操作(包括读写串口,显示数据
<em>C#</em>实现打开<em>串口</em>,关闭<em>串口</em>,利用<em>串口</em><em>接收</em>和发送<em>数据</em>,并且能把<em>数据</em>实时显示在屏幕上,实现世博功能!
C#串口通信数据不完整
下面代码是我使用<em>C#</em>开发<em>串口</em>通信写的代码,在实现<em>串口</em>通信过程中,在<em>数据</em><em>接收</em>线程中, 未加这条语句Thread.Sleep(50);我使用<em>串口</em>工具调试 ,<em>串口</em>通信正常,但是在与实际单片机通信过程中,出现<em>数据</em>不完整现象,经过多方查询,发现模拟状态下<em>串口</em>通信速率是理想状态,但是在实际通信过程中,<em>串口</em>通信并不是理想状态,有速率限制。 因此在<em>接收</em><em>串口</em>通信时应该有一定的延时,这样给予<em>串口</em>充足时间<em>接收</em>收据,这...
C# 串口通信(彻底解决C#串口通信中的数据丢失问题)
以网上某位大虾的源码为版本,沿用了其可用的代码部分。对其余欠妥部分进行了改造。不要资源分,是大家不用为积分而烦恼。出来混都不容易,希望大家相互照应!
c#用serialport进行的串口数据接收,遇到了问题,求大神指点
运行后再richtextbox1中只显示一个数,例如:33 随后会报错:对象未引用到对象的实例,点了关闭后又会出现一个<em>数据</em>,例如31,之后又会报错,如此循环,而且<em>数据</em>不太对。 整了好久了,希望能帮帮忙,第一次做这,谢谢!! 代码: namespace yfy_<em>串口</em>调试 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /****************************设置变量******************************/ public string[] strArray; public SerialPort sp1 = new SerialPort(); public Byte[] mydata; public int mydatalength; //这个数的值是由<em>接收</em>到的字节长度决定的,并且作为mydata的长度,如果索引值还超过数组定义值,就应该是<em>接收</em>问题。 public int zhengfu = 2, now_x = 30; public static Bitmap bmp = new Bitmap(500,350); public Graphics gph = Graphics.FromImage(bmp); public char name_image='A'; /*****************************相关函数****************************/ public void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)//<em>数据</em><em>接收</em>函数 { if (sp1.IsOpen==true ) //为了严谨性,加上检查<em>串口</em>是否被打开 { if (rbRcv16.Checked == true) //<em>接收</em>16进制按钮 { try { int average_speed = 0; //设置初始平均速度 Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建<em>接收</em>字节数组 sp1.Read(receivedData, 0, receivedData.Length); //读取<em>数据</em> sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer mydatalength = receivedData.Length; for (int i = 0; i < receivedData.Length; i++) //窗体显示 { richTextBox1.Text = receivedData[i].ToString("X2"); //16进制显示在接受栏 mydata[i] = receivedData[i]; richTextBox1.Text += ","; //让每个<em>数据</em>都隔开 average_speed += receivedData[i]; } textBox1.Text = (average_speed / receivedData.Length).ToString("X2"); } catch (System.Exception ex) { MessageBox.Show(ex.Message, "出错提示"); } } } else { MessageBox.Show("请打开某个<em>串口</em>或者没有选中16进制<em>接收</em>", "错误提示"); } } private void Form1_Load(object sender, EventArgs e)//页面初始化 { Control.CheckForIllegalCrossThreadCalls = false; //强制不检查线程 sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived); //订阅委托 sp1.ReceivedBytesThreshold =1; //当缓冲区的字节数为x时,触发datareceive事件 //检查是否有<em>串口</em> string[] str = SerialPort.GetPortNames(); if (str == null) { MessageBox.Show("本机没有<em>串口</em>!", "Error!"); return; } //添加<em>串口</em>项目 foreach (string s in System.IO.Ports.SerialPort.GetPortNames()) { cbSerial.Items.Add(s); //获取有COM口 } rbRcv16.Checked = true; //<em>接收</em><em>数据</em>按16进制进行 } private void btnSwitch_Click(object sender, EventArgs e)//设置<em>串口</em> { if (sp1.IsOpen == false) { try { string serialName = cbSerial.SelectedItem.ToString();//读取<em>串口</em>号 sp1.PortName = serialName; //设置<em>串口</em>号 sp1.BaudRate = 9600; //波特率 sp1.DataBits = 8; //<em>数据</em>位 sp1.StopBits = StopBits.One; //停止位 sp1.Parity = Parity.None; //校验位 sp1.Open(); //打开<em>串口</em> btnSwitch.Text = "关闭<em>串口</em>"; } catch (System.Exception ex) { MessageBox.Show("Error:" + ex.Message, "Error"); return; } } else { sp1.Close(); //关闭<em>串口</em> btnSwitch.Text = "打开<em>串口</em>"; } }
C# Serialport串口通信,接收数据丢失
用DataReceived方法<em>接收</em><em>数据</em>时有时候会丢失,尤其是在debug的时候,有时候甚至多定义几个变量,<em>数据</em><em>接收</em>也会出现丢失,有什么办法可以解决吗?
C#中使用seriport和单片机进行串口数据收发不全,解决办法
最近做了一个项目,上位机向单片机要205个字节的报文。每次上位机<em>接收</em>的<em>数据</em>总是分成好几段,不能一次<em>接收</em>205个字节。所以对<em>数据</em>处理造成影响。因此就想着怎么能实现一次<em>接收</em>205字节<em>数据</em>,一次进行处理。试了很多办法,最后终于解决了。 <em>C#</em>中,使用的是serialPort.DataReceived来<em>接收</em><em>数据</em>。一开始,上位机向单片机发送轮询指令后,单片机按照modbus协议上传205个字节<em>数据</em>。但是每次
C#串口接收数据触发事件
当使用<em>串口</em><em>接收</em><em>数据</em>的时候,会用到下列语句:      serialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 而当<em>接收</em>到<em>数据</em>时,调用port_DataReceived函数。 其中:    1)serialPort.DataReceived 是一个事件(Event);
基于C# Winform的串口数据接收
今天,我分享一篇文章,讲述 基于<em>C#</em> Winform的<em>串口</em><em>数据</em><em>接收</em>编程(适合大概明白WinForm编程的同学,没有接触过WinForm的同学下载源码学习) 首先添加<em>串口</em>(自行拖拽) [csharp] view plain copy SerialPort serialPort1 = new SerialPort("COM2", 9
C# 串口读取数据不完整
int bytes = serialPort1.BytesToRead; 我在后面定义一个数组: byte buffer = new byte; 当<em>串口</em>缓存里有16个<em>数据</em>时,bytes却只有3,有时是
C#串口接收到的数据,用的事件serialPort_DataReceived,怎么才能转换为全局变量来使用?
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { int len = seria
C#串口通信:发送数据接收指令无法触发数据接收事件(serialPort1_DataReceived)
在上位机调试的时候发现连续发送两次<em>串口</em><em>数据</em><em>接收</em>指令,<em>数据</em><em>接收</em>处理事件只响应一次,请问这个是什么原因? <em>数据</em><em>接收</em>触发事件: private void serialPort1_DataReceived(o
C# SerialPort串口通信发送接收,处理接收数据完整
using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading; namespace SerialPortCom {     public class SerialPortComImp
c#监听串口是怎么监听不到
![图片说明](https://img-ask.csdn.net/upload/201503/13/1426229159_781487.png) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; //添加的引用 using System.IO.Ports; using System.Threading; using Microsoft.Win32; namespace JTproject { /*创建时间: *功能:监听<em>串口</em> *创建作者: ***/ public partial class jianting : Form { public jianting() { InitializeComponent(); } private SerialPort Sp = new SerialPort(); public delegate void HandleInterfaceUpdataDelegate(string text); //委托,此为重点 private HandleInterfaceUpdataDelegate interfaceUpdataHandle; // private bool qiii = false; private void jianting_Load(object sender, EventArgs e) { GetComList(); //txtcomid.Focus(); btnPause.Enabled = false; } private void UpdateTextBox(string text) { txtData.Text = text; } //监听 private void btnENT_Click(object sender, EventArgs e) { //if ((cmID.Text.Trim() != "") && (cmRate.Text != "")) if ((cmID.Text.Trim()!= "") && cmRate.Text!= "") { interfaceUpdataHandle = new HandleInterfaceUpdataDelegate(UpdateTextBox);//实例化委托对象 Sp.PortName = cmID.Text.Trim(); Sp.BaudRate = Convert.ToInt32(cmRate.Text.Trim()); Sp.Parity = Parity.None; Sp.StopBits = StopBits.One; Sp.DataReceived += new SerialDataReceivedEventHandler(Sp_DataReceived); Sp.ReceivedBytesThreshold = 1; try { Sp.Open(); ATCommand3("AT+CLIP=1\r", "OK"); //txtcomid.ReadOnly = true; btnPause.Enabled = true; btnENT.Enabled = false; } catch { MessageBox.Show("端口" + cmID.Text.Trim() + "打开失败!"); } } else { MessageBox.Show("请输入正确的端口号和波特率!"); cmID.Focus(); } } //暂停 private void btnPause_Click(object sender, EventArgs e) { Sp.Close(); btnENT.Enabled = true; btnPause.Enabled = false; //txtcomid.ReadOnly = false; } private void jianting_FormClosing(object sender, FormClosingEventArgs e) { Sp.Close(); } //sp是<em>串口</em>控件 public void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string strTemp = ""; double iSecond = 0.5; DateTime dtOld = System.DateTime.Now; DateTime dtNow = System.DateTime.Now; TimeSpan dtInter; dtInter = dtNow - dtOld; int i = Sp.BytesToRead; if (i > 0) { try { strTemp = Sp.ReadExisting(); } catch { } if (strTemp.ToLower().IndexOf("\r") < 0) { i = 0; } else { this.Invoke(interfaceUpdataHandle, strTemp); } } while (dtInter.TotalSeconds < iSecond && i 0) { try { strTemp += Sp.ReadExisting(); } catch { } if (strTemp.ToLower().IndexOf("\r") < 0) { i = 0; } else { this.Invoke(interfaceUpdataHandle, strTemp); } } } // do null } /// /// 执行AT指令并返回 成功失败 /// /// AT指令 /// AT指令标准结束标识 /// private void ATCommand3(string ATCmd, string StCmd) { string response = ""; response = ATCommand(ATCmd, StCmd); } /// /// 执行AT指令并返回结果字符 /// /// AT指令 /// AT指令标准结束标识 /// private string ATCommand(string ATCmd, string StCmd) { string response = ""; int i; if (!ATCmd.EndsWith("\x01a")) { if (!(ATCmd.EndsWith("\r") || ATCmd.EndsWith("\r\n"))) { ATCmd = ATCmd + "\r"; } } Sp.WriteLine(ATCmd); //第一次读响应<em>数据</em> if (Sp.BytesToRead > 0) { response = Sp.ReadExisting(); //去除前端多可能多读取的字符 if (response.IndexOf(ATCmd) > 0) { response = response.Substring(response.IndexOf(ATCmd)); } else { } if (response == "" || response.IndexOf(StCmd) < 0) { if (response != "") { if (response.Trim() == "ERROR") { //throw vError = new UnknowException("Unknown exception in sending command:" + ATCmd); } if (response.IndexOf("+CMS ERROR") >= 0) { string[] cols = new string[100]; cols = response.Split(';'); if (cols.Length > 1) { string errorCode = cols[1]; } } } } } //读第一次没有读完的响应<em>数据</em>,直到读到特征<em>数据</em>或超时 for (i = 0; i < 3; i++) { Thread.Sleep(1000); response = response + Sp.ReadExisting(); if (response.IndexOf(StCmd) >= 0) { break; } } return response; } /// /// 从注册表获取系统<em>串口</em>列表 /// private void GetComList() { RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm"); if (keyCom != null) { string[] sSubKeys = keyCom.GetValueNames(); this.cmID.Items.Clear(); foreach (string sName in sSubKeys) { string sValue = (string)keyCom.GetValue(sName); this.cmID.Items.Add(sValue); } } } private void cmID_DropDown(object sender, EventArgs e) { GetComList(); } } }
C# 串口编程,接收到的数据不完整!!!!!虔诚求教!
<em>接收</em><em>数据</em>的事件如下: void commPlc_DataReceived(object sender, SerialDataReceivedEventArgs e) { byte buffer=new
C#串口通讯,serialPort1_DataReceived接收数据异常。
serialPort1_DataReceived触发事件: 下位机发送某指令为1s一帧,但是该事件触发后显示在上位机是几毫秒一个,而且上位机对该指令做出的响应未生效,上位机仍在几毫秒一帧的显示。而且当
C#一步步写串口通信
用<em>C#</em>一步步写<em>串口</em>通信 标签: c#textboxbuttonobjectstring 2012-08-10 14:57 18916人阅读 评论(38) 收藏 举报  分类:   <em>C#</em>(2)  项目经验(1)  版权声明:本文为博主原创文章,未经博主允许不得转载。    附言: 1. 有网友反应我写的这篇文章还不错,索性就将它置顶
C# 使用serialport串口发送和接收主要代码
      前一阵子一直在弄<em>串口</em>相关的东西,中间找了很多文章,都是说的不全面,我写<em>串口</em>是为了兼容通讯协议,底层的配置<em>接收</em>的有自己研究的也有找到的,可能不尽完善,欢迎大家批评指正留言,在此分享下个人心得,希望对新手有帮助。      转载时请保留此处: 文章来源 CSDN博客  Anthony的专栏一 <em>串口</em>十六进制发送// command是string型的要发送的<em>数据</em>// ser
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年<em>数据</em>比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听<em>不到</em>产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场<em>数据</em>,<em>数据</em>显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的<em>数据</em>分析师,我从官方<em>数据</em>中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
Android视频教程源码第一季第25集下载
Android视频教程源码第一季第25集 相关下载链接:[url=//download.csdn.net/download/sjf0115/4031982?utm_source=bbsseo]//download.csdn.net/download/sjf0115/4031982?utm_source=bbsseo[/url]
flash相关例子下载
本资源中有众多flash例子,可供初学者使用。 相关下载链接:[url=//download.csdn.net/download/zhuqianfang/4253331?utm_source=bbsseo]//download.csdn.net/download/zhuqianfang/4253331?utm_source=bbsseo[/url]
简易后台服务post/get下载
nodeJs服务,强大的易用性,可以提供简易的后台,post方法get方法兼容有效 相关下载链接:[url=//download.csdn.net/download/vx_list/9524443?utm_source=bbsseo]//download.csdn.net/download/vx_list/9524443?utm_source=bbsseo[/url]
我们是很有底线的