社区
C#
帖子详情
继续串口通信问题?
pfworld
2009-12-21 07:51:16
因为在主界面要使用3个以上的SerialPort,而且大部分接受连续发送数据的设备,再加上用远程视频,所以系统资源消耗比较大,容易造成UI卡死,寻求多线程解决方案!
以前使用自定义控件做了一个显示SerialPort数据的LED屏,后来发现容易卡死,因此显示和读取分开写,读取SerialPort数据后放进缓冲区内,然后使用线程更新LED显示控件,不知道这样行得通?或者大家有什么好的方案请帮忙!(回帖有分)
...全文
365
32
打赏
收藏
继续串口通信问题?
因为在主界面要使用3个以上的SerialPort,而且大部分接受连续发送数据的设备,再加上用远程视频,所以系统资源消耗比较大,容易造成UI卡死,寻求多线程解决方案! 以前使用自定义控件做了一个显示SerialPort数据的LED屏,后来发现容易卡死,因此显示和读取分开写,读取SerialPort数据后放进缓冲区内,然后使用线程更新LED显示控件,不知道这样行得通?或者大家有什么好的方案请帮忙!(回帖有分)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
32 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lijianfan
2010-06-08
打赏
举报
回复
兄弟!!!我最近也在搞那个,,,可我一点头绪也没有。。。要显示汉字好像要调用字库HZK16 ..能否将你的源代码给我看看。。。QQ550304122 搞了好多天了。。。希望你能帮我。。。
TANGLIJUNASP
2010-03-25
打赏
举报
回复
版主,把源码提供出来,参考一下,我也在做类似项目
有同感,方便的话发我邮箱也可以,tljchina001@163.com
pfworld
2010-01-14
打赏
举报
回复
up!
yccwt
2010-01-06
打赏
举报
回复
嗯,将UI和数据处理分开
chenglidexiaoxue
2010-01-06
打赏
举报
回复
直接使用API最好,可以更自由一些,资源消耗也少些,我在WINCE下测试过serialport这个串口封装类,长时间的接收数据,内存使用量会一直增加,当然会有个峰值,之后不再增加,但相当一部分的内存使用是释放不掉的,这和.NET垃圾处理机制是有关系的,除非你把serialport对象CLOSE掉才可以释放内存。
建议楼主在后台用一个固定的线程在一个合适的间隔时间内去读取3个串口的缓冲区,这样好控制,不要用serialPort1_DataReceived,这个触发一次就是抛出一个线程,多个线程都去争抢CPU当然容易卡死。
当然后台刷新UI也要有排队机制,最好加个LOCK,等上个数据包更新UI后,Sleep下,下个数据包再刷
yilaozhuang
2010-01-06
打赏
举报
回复
到底用MSCOMM好呢,还是serialport好呢?或者MFC呢
redlei
2010-01-04
打赏
举报
回复
UP一下
pfworld
2010-01-04
打赏
举报
回复
寻求帮助!!
zhoudan3986226
2010-01-03
打赏
举报
回复
我也写过一个无线串口接收数据的 还好啊 你吧接收和显示的写开就行了
pfworld
2010-01-03
打赏
举报
回复
[Quote=引用 22 楼 freeboy827 的回复:]
1毫秒刷一次啊,有这个必要吗
[/Quote]
测试!这个是用来降低系统性能的!极限测试!
freeboy827
2010-01-02
打赏
举报
回复
1毫秒刷一次啊,有这个必要吗
pfworld
2010-01-02
打赏
举报
回复
元旦自己顶!!
wzrj2008
2009-12-30
打赏
举报
回复
顶 一下
pfworld
2009-12-28
打赏
举报
回复
晕,自己UP一下!!
pfworld
2009-12-25
打赏
举报
回复
如何把控件运行在非UI线程中?比如说:串口、Timer、datagridview等!
ld6886
2009-12-25
打赏
举报
回复
根据楼主的描述是将数据的处理放在UI中了,所以才有低波特率下的问题。
将数据处理放到另一个线程中(或另几个线程中,根据具体的情况决定),不要在UI中放任何数据处理的代码。
这是UI的基本要求。
mjp1234airen4385
2009-12-25
打赏
举报
回复
自定义控件也是在主线程里跑的。
除非你放在子线程里定义才行的。
最好是用多线程。
pfworld
2009-12-25
打赏
举报
回复
解决方案1:在serialPort1_DataReceived内读取数据,分析数据后赋值到变量,然后传值到自定义控件LED显示数值,用户取值时直接读取变量值。
解决方案2:在serialPort1_DataReceived内读取数据,使用Timer每1/100秒读取serialPort1_DataReceived数据,分析数据后赋值到变量,然后传值到自定义控件LED显示数值,用户取值时直接读取变量值。
问题:使用解决方案1 UI有时有点卡,使用解决方案2时 数据不能同步!
michaelnami
2009-12-24
打赏
举报
回复
就用线程就好 但是注意屏幕不要实时显示 这样及其容易卡死
wutb2001
2009-12-24
打赏
举报
回复
帮顶
加载更多回复(12)
嵌入式硬件通信接口协议-IIC(一):协议基础
本节
继续
讲嵌入式硬件通信接口协议中的又一个串行通信接口-IIC。相比于UART串口协议和SPI串行外设接口协议,这个IIC又有其独特之处。 简介 IIC(Inter-Integrated Circuit),集成电路总线。 ...
如何排查
串口通信
问题
?
传输来源:公众号【鱼鹰谈单片机】作者:鱼鹰OspreyID :emOsprey工作过程中,总是会遇到各种各样的通信
问题
,除了掌握软件知识,必要的硬件技能也必不可少,比如万用表、示波器、逻辑分析仪等,如此才能做到精准...
计算机
串口通信
的作用,
串口通信
协议
尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
串口通信
协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式...
01、UART
串口通信
文章目录0、前言1、串行通信的初步认识2、RS232 通信接口3、USB 转
串口通信
4、IO 口模拟 UART
串口通信
5、UART
串口通信
的基本应用5.1、通信的三种基本类型5.2、UART 模块介绍5.3、UART 串口程序6、ASCII 码 ...
232通信c语言设计,基于C语言的RS232串行接口通信设计与实现
摘要:
串口通信
是一种广泛使用且实用的通信方式,介绍RS232串行通信的联结方式,研究利用c语言编程实现RS232串行通信的过程。结合实际应用,在约定双方串行通信协议的基础上,运用C语言开发的串行通信软件,实现了...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章