搜索
bottom↓
回复: 13

CSerialPort类改造讨论

[复制链接]

出0入0汤圆

发表于 2011-6-29 10:09:53 | 显示全部楼层 |阅读模式
因为实际应用的的需要,小弟最近在学用CSerialPort类学写串口通信程序,关于这个类,有几个问题想请教一下:第一,怎么解决不能发送0x00的问题;第二,怎么把他改造为有长度为1000的缓冲区,我若是接收数据量不大,有无必要设置缓冲区,第三,PC与单片机通信,我接收单片机数据时一般是一个字节,而CSerialPort内定义为收到的是string类,还有我发送的是45,怎么转化为十六进制给单片机,用强制转化函数吗?第四,比如我用单片机测一个正弦电压,想再上位机上显示出来,有什么比较好的方法,虽然很多大侠传过控件,可是由于没有详细说明,小弟几乎看不懂,还有一个就是我在上位机上画个波形,怎么转化为数据传给单片机进行处理,哪位哥哥有相关的例子或教程,指导下小弟,小弟我感激不尽

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-6-30 16:40:13 | 显示全部楼层
能不能先说一下你的开发语言啊??
就你的第三个问题,比如说(MFC),你用 OnCommunication(WPARAM ch, LPARAM port) ,没有说CSerialPort内定义为收到的是string类啊?这里用的就是 WPARAM

出0入0汤圆

 楼主| 发表于 2011-7-1 13:25:30 | 显示全部楼层
回复【1楼】lxlylm 刘
-----------------------------------------------------------------------

MFC,C++,这WPARAM 是多态数据类型,我就奇怪,有些程序里就直接当做stringl类型用了,比如他 CString a;a=+ch;怎么能这么用呢

出0入0汤圆

发表于 2011-7-1 20:47:47 | 显示全部楼层
你都说了【这WPARAM 是多态数据类型】,那当然可以当CString使用了

WPARAM在32位系统是32位的unsigned int,但在理论上,WPARAM LPARAM的含义可以程序员任意指定的,但是最好遵从MFC中的习惯
所以说,你是可以自定义消息来发送通知和传送数据

再引申开来,WPARAM是可以传送数据的,但他不能传送所有的数据,在16位平台上就是有限制的,32平台应该也有的(因为这个WPARAM本来就是16位系统留下来的),具体不知道哪位兄弟试过...

出0入0汤圆

 楼主| 发表于 2011-7-2 19:29:03 | 显示全部楼层
回复【3楼】lxlylm 刘
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-7-2 20:10:48 | 显示全部楼层
早就不用这个类了,到codeproject上再找个吧

出0入0汤圆

发表于 2011-7-2 23:46:24 | 显示全部楼层
回过头来看你的问题:

第一:这个类发送的应该都是char*(LPCTSTR这里也是char*),因此不如考虑从下位机着手,让下位机识别成数字而不是字符串,其实自己定义一下发送的格式不就行了(好听点说,这里你自己定义一个协议吧)

第二:这个类有设置 → writebuffersize,另外,无论如何,buffer是一定要的

第三:同第一个问题

第四:MFC有chart控件的,这个我帮不了你,我不用C做UI的

CSerialPort类不是我用来封装的串口类,但基本相同,因此以上如果有不对的地方,请指正

此外,你用的CSerialPort是哪个,我找到过不下3个版本的CSerialPort类,有一个还是97年某个著名公司发布的
这里我传其中一个
点击此处下载 ourdev_654227GI356G.txt(文件大小:21K) (原文件名:CSerialPort_No1.txt)

出0入0汤圆

 楼主| 发表于 2011-7-3 11:57:46 | 显示全部楼层
回复【6楼】lxlylm 刘
-----------------------------------------------------------------------

我的是论坛上某个好心的大侠给的,不知道什么版本

出0入0汤圆

发表于 2011-7-3 22:18:30 | 显示全部楼层
能用就行

出0入0汤圆

发表于 2011-7-3 23:12:52 | 显示全部楼层
直接用api吧,多方便呀

出0入0汤圆

发表于 2011-7-4 17:49:58 | 显示全部楼层
回去给你看看。

出0入0汤圆

 楼主| 发表于 2011-7-4 21:25:47 | 显示全部楼层
回复【9楼】zc3909
-----------------------------------------------------------------------

没有 这方面的教程

出0入0汤圆

发表于 2011-8-19 10:14:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-24 21:14:27 | 显示全部楼层
看龚建伟的书。。。

网上也有书和代码。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 12:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表