• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请教单片机与计算机串口通讯中的问题!

请教单片机与计算机串口通讯中的问题!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了请教老年人如何壮阳,请教的意思,请教如何选购木地板,请教什么浮漂好用,请教地暖布管标准等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请教单片机与计算机串口通讯中的问题!
描述:

通讯过程: 
   单片机中的数据有8k,两种数据,一个是两个字节,一个是一个三个字节,连续发给计算机,计算机这边一直收。
   我看了《vc++串口通信技术与工程实践》,有个例子是:
       
       void CCommWizardDlg::OnOnCommCommctrl() 
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(bReceive)
{
if(m_Com.GetCommEvent()==2)     //事件值为2表示接收缓冲区内有字符
{
variant_inp = m_Com.GetInput();   //读缓冲区
safearray_inp = variant_inp;           //VARIANT型变量转换   
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
                                     //为ColeSafeArray型变量
                            m_int=len;
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型                                                                        //数组
for(k=0;k<len;k++)             //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k);      //字符型
if(m_nInputMode == 2)
strtemp.Format("%02X ",bt); //将字符以十六
                             //进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else 
strtemp.Format("%c",bt); //将字符送入临时//变//量strtemp存放
m_strReceive = m_strReceive + strtemp;    //加入接收//编辑框对应字符串    
}
m_strReceive += "\r\n";
}
}
UpdateData(FALSE);           //更新编辑框内容
}
            其中,m_Com.SetRThreshold(1);//有一个字符引发一个事件
我的问题是:一个字符过来后,产生事件,程序进入OnOnCommCommctrl() 进行处理,这时m_Com.GetInput()得到的字符是多长呢?是一个吗?还是不确定?


解决方案1:

应该是全部的数据长度!

解决方案2:

InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。
语法 object.InputLen [ = value]
InputLen 属性语法包括下列部分:
value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。 
说明:InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。
若接收缓冲区中 InputLen 字符无效,Input 属性返回一个零长度字符串 ("")。在使用 Input 前,用户可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用

解决方案3:

应该不是一个,但我认为应该没有关系.有多少收多少.

解决方案4:

好像不是一个

解决方案5:

我帮你顶!!!
我顶,顶,顶,,,

解决方案6:

我在VB下用过控件,VC下只用过API.楼主实验一下不就知道了吗?干嘛让我们大家跟你一起猜闷呢?:)

解决方案7:

是啊,没用过控件哦。。。帮你顶顶吧

解决方案8:

帮顶混分

解决方案9:

没用过控件,只用过API。
应该一起接收,接收后通过程序分离。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请教高手,如何在SDK程序中使用Flash控件,请高手帮帮忙!
  • 请教返回自定义接口参数的问题
  • 请教高手!!!!!!!!!!!
  • 请教高手该如何解决这个难题?
  • 请教高手WORD自动化中的表格问题,急!!!
  • 请教在dll中定义对话框,出了问题
  • 请教,请问怎么在COM中获得当前时间啊?
  • 请教,如何去掉打右键菜单
  • 请教如何用代码将EXCEL中某一单元格的内容COPY到系统剪贴板中?
  • 请教:如何利用浏览器插件完全控制浏览器与服务器的交互?

相关文章

  • 2017-06-04 在ATL中如何创建OLE容器?很难的问题,回复请慎重
  • 2017-06-05 高手指教一下:我做了一个局域通讯程序,希望是能够服务器和多个客户端进行通讯,想用多线程来处理。怎么写?最重要的是我不明白利用线
  • 2017-06-05 关于callback函数和线程的很基础的问题
  • 2017-06-04 请问怎么在数据库中怎么用参数查询分别插入整型,浮点,时间型数据?
  • 2017-06-05 如何在dll中使用到cmscomm????大虾指教!
  • 2017-06-05 关于动态库调用的问题、?再线等
  • 2017-06-04 各位高手请进,MsnAPI的问题
  • 2017-06-05 如何把EXE文件封装到DLL中
  • 2017-06-05 如何使用多进程读写文件(任意类型)
  • 2017-06-05 如何无条件强制杀死一个进程?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 进来有分(简单的多线程问题)
    • WebBrowser的PostData和Header问题
    • TypeLib注册问题
    • 关于WinIo使用的问题
    • 请问哪儿有可编辑的表格控件,只用来修改属性就可以了,不需要支持数据库的。
    • 急问:关于创建一个系统枚举组件的问题。
    • 关于多线程的重workerthread的创建
    • 到底是什么问题,我头发都白了
    • 想把charstr[MAX_PATH]改成一个数组每个数组成员为charstr[MAX_PATH]?
    • 如何在wtl中创建一个显示网页的窗体

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有