关于串口读写问题 ------- 大神请进来瞧瞧

金牛萌萌 2016-09-05 04:16:35


给串口写入一个字符串“abcd”,数据读不出来,大神帮忙看一下哪里出现了问题?多谢!

...全文
738 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nt006 2016-09-23
  • 打赏
  • 举报
回复
引用 12 楼 q3733353520 的回复:
[quote=引用 11 楼 halloworldd 的回复:] [quote=引用 10 楼 q3733353520 的回复:] 2个线程 一个用w方式打开串口设备,并且write数据 一个用r方式打开串口设备,并且read数据(发现有数据可读时)。
这样确实可以,线程1一直处于发送状态,发送的很快, 线程2处于接收状态,此时线程2并不能把数据接收过来,每次接收的数据都是残缺的,,除非在线程1中增加延时,当延时设置为1s时,数据能完整接收,小于1s就不行了,但是1s的时间有太久了,,,现在就卡在这儿了!!![/quote] 用select[/quote] 一个串口接收发送 你用个线程 说实话 你拿练习可以 ,拿来实用欠妥当
  • 打赏
  • 举报
回复
引用 11 楼 halloworldd 的回复:
[quote=引用 10 楼 q3733353520 的回复:] 2个线程 一个用w方式打开串口设备,并且write数据 一个用r方式打开串口设备,并且read数据(发现有数据可读时)。
这样确实可以,线程1一直处于发送状态,发送的很快, 线程2处于接收状态,此时线程2并不能把数据接收过来,每次接收的数据都是残缺的,,除非在线程1中增加延时,当延时设置为1s时,数据能完整接收,小于1s就不行了,但是1s的时间有太久了,,,现在就卡在这儿了!!![/quote] 用select
金牛萌萌 2016-09-19
  • 打赏
  • 举报
回复
引用 10 楼 q3733353520 的回复:
2个线程 一个用w方式打开串口设备,并且write数据 一个用r方式打开串口设备,并且read数据(发现有数据可读时)。
这样确实可以,线程1一直处于发送状态,发送的很快, 线程2处于接收状态,此时线程2并不能把数据接收过来,每次接收的数据都是残缺的,,除非在线程1中增加延时,当延时设置为1s时,数据能完整接收,小于1s就不行了,但是1s的时间有太久了,,,现在就卡在这儿了!!!
  • 打赏
  • 举报
回复
2个线程 一个用w方式打开串口设备,并且write数据 一个用r方式打开串口设备,并且read数据(发现有数据可读时)。
花开花折 2016-09-14
  • 打赏
  • 举报
回复
引用 8 楼 u010909114 的回复:
[quote=引用 6 楼 halloworldd 的回复:] [quote=引用 3 楼 u010909114 的回复:] 1:延时加长点; 2:利用事件读取数据;
能普及一下读取串口和“事件”之间的联系么,目前我对这块儿还是空白。谢谢你的帮助![/quote] 当接收端口接收到第一个字节时,会触发一个事件,你可在此事件中开始读取串口接收缓冲区的数据;[/quote] C# 及C++中都有对应的串口控件,用来处理串口通信,当然也可自己写。
花开花折 2016-09-14
  • 打赏
  • 举报
回复
引用 6 楼 halloworldd 的回复:
[quote=引用 3 楼 u010909114 的回复:] 1:延时加长点; 2:利用事件读取数据;
能普及一下读取串口和“事件”之间的联系么,目前我对这块儿还是空白。谢谢你的帮助![/quote] 当接收端口接收到第一个字节时,会触发一个事件,你可在此事件中开始读取串口接收缓冲区的数据;
91program 2016-09-13
  • 打赏
  • 举报
回复
串口接收,建议是使用线程 + 事件的方式,而不是读一下就不管了
金牛萌萌 2016-09-13
  • 打赏
  • 举报
回复
引用 1 楼 91program 的回复:
Linux Or Wince? 怎么看你的代码风格,好像是 Linux 呢?
是的!ubuntu!
金牛萌萌 2016-09-13
  • 打赏
  • 举报
回复
引用 3 楼 u010909114 的回复:
1:延时加长点; 2:利用事件读取数据;
能普及一下读取串口和“事件”之间的联系么,目前我对这块儿还是空白。谢谢你的帮助!
金牛萌萌 2016-09-13
  • 打赏
  • 举报
回复
引用 4 楼 91program 的回复:
串口接收,建议是使用线程 + 事件的方式,而不是读一下就不管了
我是想实现程序在开发板上运行后,处于等待接收状态,,,把开发板的串口连接电脑,用串口调试助手给板子发信息,但发现一直收不到数据,,,
花开花折 2016-09-09
  • 打赏
  • 举报
回复
1:延时加长点; 2:利用事件读取数据;
  • 打赏
  • 举报
回复
既然写用的write,为啥读就变成了PortRecv了,命名不规范还是什么? 试试直接调用read函数。 另外,rxData[RxLen+1]不对吧, 应该是rxData[RxLen]
91program 2016-09-06
  • 打赏
  • 举报
回复
Linux Or Wince? 怎么看你的代码风格,好像是 Linux 呢?
内容概要:本文档针对2026年华为杯研究生数学建模竞赛C题“服务于脑机接口与精神性疾病诊断的脑电图计算模型”,系统性地提供了从解题思路、算法实现到论文撰写的全流程支持资源。内容聚焦脑电信号(EEG)的数据预处理、特征提取、分类建模与结果分析,融合机器学习与深度学习技术(如SVM、CNN、LSTM、Transformer等),构建高精度的脑电识别模型,服务于抑郁症、癫痫等精神疾病的智能辅助诊断及脑机接口的信息解析。文档还整合了MATLAB与Python代码资源、模型实现案例及多领域科研技术支持体系,涵盖智能优化、信号处理、路径规划、通信优化等方向,并提供网盘资料下载与在线目录导航,强化理论与实践的深度融合; 适合人群:参加全国研究生数学建模竞赛的硕士、博士研究生,从事脑电信号处理、智能医学、生物信息学研究的科研人员,以及具备一定编程与数据分析基础、致力于人工智能在医疗健康领域应用的高校学生与青年学者; 使用场景及目标:① 快速掌握华为杯C题的技术路线与建模范式,高效完成竞赛备赛;② 构建面向临床辅助诊断的脑电计算模型,推动脑机接口与精神疾病识别的算法创新;③ 借助提供的开源代码与建模框架,开展科研复现、算法优化与学术论文写作; 阅读建议:建议结合文档提供的在线资源目录与百度网盘资料系统学习,优先精读脑电信号去噪、特征工程构建与深度学习模型选型部分,动手运行并调试代码,通过对比不同模型性能深化对算法适用性与工程实现细节的理解,同时关注跨学科方法的融合应用。
源码直接下载地址: https://pan.quark.cn/s/b2e30c4b4277 依据所提供的文件资料,可以总结出以下核心内容: 1. 华硕玩家国度x79 R4G主板属于高端级别的主板,归类于华硕玩家国度系列中的RAMPAGE IV GENE型号。该主板主要面向高端用户及游戏爱好者,具有卓越性能的特点。 2. 华硕玩家国度x79 R4G主板的使用指南采用简体中文版本,并以PDF格式发布。用户手册全面地阐述了该主板的操作方法和各项功能。 3. 版权声明明确指出,本手册包含的所有内容均受到著作权法的保护。未经华硕电脑股份有限公司(简称“华硕”)的许可,禁止进行任何形式的复制、剽窃、翻译或分发。 4. 免责声明具体说明,华硕提供的用户手册依照其发布时的状态呈现,不提供任何明示或暗示的保证。用户使用手册所面临的风险需自行承担,且华硕不对使用手册后的任何结果或信息的精确性或可靠性提供保证。 5. 用户手册中强调,使用本手册后可能引发的风险和损失,涵盖但不限于利益损失、业务中断、数据遗失或其他经济上的损失,华硕及其授权人员、雇员等均不承担相应责任。 6. 华硕拥有随时更新用户手册的权力。当产品规格或驱动程序发生变化时,用户手册将进行相应的修订。用户可以通过华硕的客户服务网站或直接联络华硕电脑客户关怀中心以获取最新版本的信息。 7. 第三方产品名称或内容的所有权和知识产权归属于各自的所有者,并受到相关法律法规的保护。 8. 在华硕的保修政策中,若产品经历过未经华硕授权的维修、规格调整、部件更换或其他未授权操作,或者产品序列号模糊不清或遗失,产品将不再享受华硕的保修和服务。 9. 华硕供应的主板及显卡产品在中国大陆地区(不包括港澳台地区)实施三年免费保修服务及全国联保服务...
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 I2C(Inter-Integrated Circuit)总线是一种在电子设备中广泛应用的串行通信协议,该协议由Philips半导体(现名为NXP半导体)于上世纪80年代提出。I2C总线借助两条线路(时钟线SCL和数据线SDA)完成设备间的控制指令与数据信息的交换,因此它具备多主机与多从机的串行总线特性。在软件层面模拟I2C主从机交互时,常规的IO端口被用于再现I2C主机及从机的通信过程。 I2C总线引脚功能说明: 1. SCL(Serial Clock):时钟线,其时钟信号由主机掌控。 2. SDA(Serial Data):数据线,主要用于承载数据传输。 总线时序规范: - 非活动状态:当总线处于非通信阶段,SDA线保持高电平。 - 总线的线与操作:若多个设备同时接入总线,通过线与逻辑确保任一设备输出低电平,则总线整体呈现低电平状态。 - 数据位稳定性要求:数据位必须在SCL为高电平期间维持稳定状态,而只有在SCL为低电平期间方可发生改变。 - 起始与终止信号的定义:起始信号表现为在SCL高电平期间SDA从高电平转为低电平,终止信号则是在SCL高电平期间SDA从低电平转为高电平。起始信号标志着总线使用周期的起始,终止信号则表示总线使用周期的结束。 - 从机数据处理延时的处理机制:当从机需要额外时间处理数据时,能够将SCL线拉至低电平,促使主机进入等待状态。 - 字节传输与应答机制:一个字节由8位数据加上1位应答位构成。若从机无法应答或已无数据接收需求,将释放SDA线,主机随后产生终止信号。 - 数据帧结构:数据帧以从机地址作为起始,接着是数据传输方向指示位,最后是实际传输...

23,224

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧