CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  网络及通讯开发

串口通讯的问题,如何发送数字?

楼主hjhmxh(bb)2004-09-04 20:30:20 在 C++ Builder / 网络及通讯开发 提问

有一串字符  
  String   str   =   "F4   F5   0A   00   FF   00   ";  
  如何在串口发送的时候,当成数字发送?我现在发送出去的,就成了  
   
  46   34   20   46   35   20   30   46   46   20   30   ????  
   
  何解???????  
  问题点数:0、回复次数:10Top

1 楼lwdFeihu(飞鹄)回复于 2004-09-04 21:21:01 得分 0

F   :   对应的ASCII   值是70   除16   =46  
  一次类推  
  发送的时候   它当70为十六进制自然转换成十进制发送了      
  知道问题出在哪里了    
  自然自己知道该怎么解了Top

2 楼wuxq7311(小清)回复于 2004-09-04 21:50:12 得分 0

是对应的ASCII码,有什么问题啊?发送就是发送这些啊!Top

3 楼wuxq7311(小清)回复于 2004-09-04 21:52:49 得分 0

一般COM口编程都会对应接收端一起编程!!就算没有,另一端接收的时候也是你需要的!Top

4 楼Lonelywolf1899(プログラマ)回复于 2004-09-08 11:42:33 得分 0

再把它转回来Top

5 楼commars(奋斗成就男人)回复于 2004-09-09 10:04:27 得分 0

建议到http://www.cppfans.com/cntfile.asp?fn=yb_comm1334a下载Victor控件,有完整的源代码和例子Top

6 楼cnrealboy(中国男人)回复于 2004-09-09 11:17:50 得分 0

46   34   20   46   35   20   30   46   46   20   30  
  自己加上0x,然后转换成为char就行了。Top

7 楼zcq129(风雨钟声)回复于 2005-07-26 12:53:19 得分 0

把每个数据都添上0x,然后把它们赋值给char型的变量,就可以了Top

8 楼microheart(心)回复于 2005-07-26 14:49:02 得分 0

如果输入是字符串,自己编个函数转换一下,很简单的  
  如果输入由自己定,楼主直接定义为十六进制字符串就可以了。Top

9 楼mozart007()回复于 2005-07-26 15:30:07 得分 0

建议你直接用写个函数把16进制,10进制,都转成2进制处理,不要用16进制,10进制了  
  反正串口上传的也是2进制,这样做效率最高Top

10 楼dxqxiaoqiang(球球)回复于 2005-08-24 23:50:32 得分 0

这是用Victor控件的例子  
      int   nBytes   =   0;  
      char   Buffer[1000],   *EndPtr;  
      AnsiString   t,s   =   Edit1->Text.Trim();  
      while(s.Length()>0)  
        {  
            int   p   =   s.Pos('   ');   //空格  
            if(p>0)  
              {  
                  t   =   s.SubString(1,p-1);  
                  s   =   s.SubString(p+1,s.Length()).Trim();  
                  Buffer[nBytes++]   =   strtol(t.c_str(),   &EndPtr,   16);   //十六进制字符串转成字节  
              }  
            else   //还剩下最后一个字节  
              {  
                  t   =   s;  
                  s   =   "";  
                  Buffer[nBytes++]   =   strtol(t.c_str(),   &EndPtr,   16);   //十六进制字符串转成字节  
              }  
        }  
      YbCommDevice1->Write(Buffer,nBytes);//如果用其他控件就改成WriteFile()等。  
  Top

相关问题

  • 串口通讯SPCOMM控件如何发送#0这个字符。
  • C#如何实现串口通讯
  • 如何提高串口通讯速度?
  • 关于串口通讯问题:如何区分发送方每次发送的每个完整的数据串?谢谢!
  • 各位帮忙!!用spcomm控件编写串口通讯程序,当向串口发送数据时,下面格式如何发送+spcomm大讨论!
  • 关于串口通讯(向手机发送AT命令集)
  • 串口通讯中怎么发送一个回车符?(在线)
  • tc下如何编写串口通讯程序?
  • 如何用C++对串口通讯编程!
  • 请问:如何利用VC进行串口通讯?

关键词

  • 控件
  • 转换
  • 十六进制
  • 字符串
  • 发送
  • nbytes
  • 转成
  • endptr
  • 进制
  • 问题

得分解答快速导航

  • 帖主:hjhmxh

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo