xinxin3219 发表于 2011-6-29 10:09:53

CSerialPort类改造讨论

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

lxlylm 发表于 2011-6-30 16:40:13

能不能先说一下你的开发语言啊??
就你的第三个问题,比如说(MFC),你用 OnCommunication(WPARAM ch, LPARAM port) ,没有说CSerialPort内定义为收到的是string类啊?这里用的就是 WPARAM

xinxin3219 发表于 2011-7-1 13:25:30

回复【1楼】lxlylm 刘
-----------------------------------------------------------------------

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

lxlylm 发表于 2011-7-1 20:47:47

你都说了【这WPARAM 是多态数据类型】,那当然可以当CString使用了

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

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

xinxin3219 发表于 2011-7-2 19:29:03

回复【3楼】lxlylm 刘
-----------------------------------------------------------------------

findroot 发表于 2011-7-2 20:10:48

早就不用这个类了,到codeproject上再找个吧

lxlylm 发表于 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)

xinxin3219 发表于 2011-7-3 11:57:46

回复【6楼】lxlylm 刘
-----------------------------------------------------------------------

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

lxlylm 发表于 2011-7-3 22:18:30

能用就行

zc3909 发表于 2011-7-3 23:12:52

直接用api吧,多方便呀

brightsm 发表于 2011-7-4 17:49:58

回去给你看看。

xinxin3219 发表于 2011-7-4 21:25:47

回复【9楼】zc3909
-----------------------------------------------------------------------

没有 这方面的教程

yulri 发表于 2011-8-19 10:14:05

mark

Excellence 发表于 2011-8-24 21:14:27

看龚建伟的书。。。

网上也有书和代码。
页: [1]
查看完整版本: CSerialPort类改造讨论