社区
ATL
帖子详情
请教高手:在VC中如何发送ASCII码0到串口?谢谢赐教!
xuing
2003-10-20 02:32:08
请教高手:在VC中如何发送ASCII码0到串口?谢谢赐教!
在发送字符串的时候,如果遇到ASCII码0的话,VC就认为是结束了,就不发。无论是文本方式还是二进制方式都是如此。
而我要发送二进制文件,里面难免会包含0。这不就惨了吗?
想请各位高手帮帮忙!!
...全文
175
13
打赏
收藏
请教高手:在VC中如何发送ASCII码0到串口?谢谢赐教!
请教高手:在VC中如何发送ASCII码0到串口?谢谢赐教! 在发送字符串的时候,如果遇到ASCII码0的话,VC就认为是结束了,就不发。无论是文本方式还是二进制方式都是如此。 而我要发送二进制文件,里面难免会包含0。这不就惨了吗? 想请各位高手帮帮忙!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dcydd
2004-01-03
打赏
举报
回复
传输数据时,无论是IP还是RS232通讯,也不管发送的是ASCII码还是二进制,应该引用数据缓存区的地址(BYTE *Buf)和占用缓存区的字节数(int Len) ,字符串指针就是缓存区地址.
如:
char buf[]="1234567890";
int Len=10;
WriteComm(com,buf,Len);
这样无论你想发送什么数或字符都可以,此处'0'不可能丢失!
smalldragon
2003-12-18
打赏
举报
回复
同意zhuxiaoming(zhuxiaoming)的说法,一定注意发送时使用数组,BYTE类型的,发送时写入长度用数组长度
zhang920171
2003-12-18
打赏
举报
回复
发送0是可以的,估计还是转换的时候丢了。
半宫佳丽
2003-12-17
打赏
举报
回复
觉得他们说的对,不是在串口丢的,而是在字符转换时就丢了
zhuxiaoming
2003-10-22
打赏
举报
回复
在发送时,使用BYTE发送,发送的字节数万万不能使用lstrlen(s),必须获得需要发送的字节数,例如:
BYTE s[100];
s[0]=1;
s[1]=0;
s[2]=2;
s[3]=3;
DOWRD nLength = 4; ////////不能使用lstrlen(s)
WriteFile(pComm1,(char *)s,nLength,&nLength,........);
一定是可以的,我在无数个程序中使用过了。
liuliguo940
2003-10-21
打赏
举报
回复
发送时在长度的变量中加1就可以了
duyhui
2003-10-21
打赏
举报
回复
不是不能发,是你转化的时候用的CString str=str.Format("%s",你的数组名吧);这样肯定不行的
你用CString str=str.Format("%c",数组[i])一个一个转化,再累加,再发就行了!!
我早就遇到过你的这个问题
xuing
2003-10-21
打赏
举报
回复
我是直接使用MsCOMM控件的,并没有编写串口发送的代码。
能不能提供一些合适的代码和一些建议啊?
谢谢了!!
yanzhaojiang00
2003-10-21
打赏
举报
回复
把你要传输的数据以二进制的形式存入VARIANT类型的缓冲区中,然后再进行传输。这样数据就不会丢失。我估计你的数据是在CString类型的变量中已经丢掉了,而不是在串口传输的时候丢失的。因为传口的传输数据的针脚和数据传输结束标志的针脚不是同一个,不会说遇到ASCII码为0的数据就结束传输的。可以提供你的代码吗?
xuing
2003-10-21
打赏
举报
回复
是发送ASCII码的0(0x00),而不是字符的0(0x30)。
确实只能收到C。
还有没有高手啊???
半宫佳丽
2003-10-20
打赏
举报
回复
真的吗??
你发送 “C0C0C0”,只收到一个C???
xuing
2003-10-20
打赏
举报
回复
'\x00'='\0'=0
这些表达我都试过了,就是不能发。
有哪位高手高手高高手能帮帮忙啊!!!
fificake1
2003-10-20
打赏
举报
回复
'\x00'
最强悍的
VC
VB反编译工具 Hex-Rays
最强悍的反编译工具 Hex-Rays。 可以反编译 VB
VC
BCB Delphi 等等一切 x86/x64 代码为 C 代码。密码参见内附说明文件。 我写了个简单的介绍 http://blog.caozhongyan.com/article.asp?id=19
【
VC
】判断
中
文并获取
中
文的
ASCII
码
中
文是占有两个字节的。。例如:文,0x6587,内存
中
87 65 如果
ASCII
>= 0xA0,则可以判断是
中
文,这样的话
ASCII
就占了两位 CString str(_T("11文11")); BYTE Buf[10]; int nlen,nCount = 0; for (int i=0;i
用
VC
#.NET+OpenGL开发交互式CAD系统
本课程用
VC
#.NET结合OpenGL,从无到有开发一个功能较完整的小型交互式CAD系统。 作者有交互式CAD系统、动态几何系统开发经验。出版过交互式CAD系统开发方面的图书。 课程先讲准备知识,然后讲整个系统的开发思路和...
c语言常量
ascii
码表,C语言常用转义符和
ASCII
码表
转义字符含义
ASCII
码(16/10进制)\0空字符(NULL)00H/0\n换行符(LF)0AH/10\r回车符(CR)0DH/13\t水平制表符(HT)09H/9\v垂直制表(VT)0B/11\a响铃(BEL)07/7\b退格符(BS)08H/8\f换页符(FF)0CH/12\’单引号27H/39\”双引号22H/34\\反斜杠5CH/92\?问号字符3F/63\ddd任意字符三位八进制\xh...
转换字符为
ASCII
码
http://blog.csdn.net/wulang1114/article/details/5090753 最近在研究
串口
通信,遇到要将字符串转换成
ASCII
码的问题,以前在VB下有函数Asc()直接转换,在
VC
中
头次遇到,一下子给蒙住了。上网查查有没有类似的函数可以完成这
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章