串口通信数据格式我的数据怎么发不出去

串口发送数据,int转CString后发不出去,该如何解决 - VC/MFC当前位置:& &&&串口发送数据,int转CString后发不出去,该如何解决串口发送数据,int转CString后发不出去,该如何解决&&网友分享于:&&浏览:44次串口发送数据,int转CString后发不出去int i=0xBA;
CString m_strTXD
m_strTXData+=(char)
m_ctrlComm.SetOutput(COleVariant(m_strTXData));//串口发送为什么?------解决方案--------------------看不懂,传送一个字节需要这么费劲吗?
------解决方案--------------------m_strTXData+=(char)错误很严重,应该是这样:char sBuf[4];sprintf(sBuf,&%02x&,(char)i);m_strTXData+=sB
------解决方案--------------------你先用itoa函数将整形转换成字符串试试。要不然就考虑有什么函数将串口数据转换为你所需要发送的数据类型。
------解决方案--------------------你原来的方法,可以用16进制收,用ASCII方式收,收到的数据大部分是无法显示的
------解决方案--------------------为啥不用API自己写捏?char ch = 0xBA;DWORD dwBytesWrite = 0;WriteFile(hDevice, &ch, 1, &dwBytesWrite, NULL);为啥非要用控件捏?
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有51单片机通信问题,串口调试助手能接受单片机发送的数据,但是单片机却不能接受串口调试助手发送的数据。,为什么我的最小单片机系统通过串口能接受到PC端串口发送的数据(通过串口调试助手
来源:网络
关键字: 单片机 串口调试助手
更新时间:
延伸:本文除了聚合《51单片机通信问题,串口调试助手能接受单片机发送的数据,但是单片机却不能接受串口调试助手发送的数据。》,免费提供的有关单片机 串口调试助手和为什么我的最小单片机系统通过串口能接受到PC端串口发送的数据(通过串口调试助手的内容之一,已有不少的网友认为此答案对自己有帮助!获取更多与《》相关的知识。
网友0的回答
因为串口是通过电压范围来确定收到的是1还是0,由于没有上电,电脑的串口的电会提供给最小系统,但是又不网友1的回答
把串口调试助手那个自动清空的复选框勾掉!!! 看看好用不?有问题继续问!网友2的回答
1/。你input进来的数据有没有dbug.print 一下,看看是什么值? 2、作项目遇到同一问题网友1的回答
REN=1; SM0=0; SM1=1; 把SM0=0和SM1=1写在REN前面。在开始工作时,单片网友0的回答
波特率不一致造成的吧网友1的回答
首先,单片机里面要有程序。 然后,电脑串口的参数要与单片机一致。例:9600,N,8,1. (960网友2的回答
要看程序全貌才知道具体原因,你可以将串口中断的优先级设为最高试试。网友1的回答
怎么判断它发个不停的??不会只看你的P1口输出吧!!如果真那样的话,你看到的并非是实的(也就是说不一网友0的回答
嵌入式编程有个不成文的规则:中断函数里面的语句尽量简短,尽量少处理浮点运算,尽量不要使用死循环!你上网友1的回答
最满意的回答
猜你感兴趣
回答问题赢iPhone 6后使用快捷导航没有帐号?
查看: 6646|回复: 11
MSCOMM控件做串口通信程序,发送数据的格式怎么去定义啊
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
请教个问题:我做应用程序的,使用MSCOMM控件做了一个串口通信程序(VB),用串口调试程序测试接受和发送数据都没有问题,现在同事要在硬件那边发送数据,他用汇编,现在他说我的程序有问题,发送格式不对,说要按他的格式发送:即先发一个0X10作为帧头,然后再是数据,最后0X16做帧尾!对硬件我不怎么懂,所以有点迷惑了,在MScomm控件中怎么去做才能和他对应起来啊
在线时间8 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
自己组包发送就可以了。
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
引用 1 楼 luixing67 的回复:
自己组包发送就可以了。
怎么组包啊,直接用MSComm控件就可以设置吗?
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
自己顶一个,希望有高手能指点一下
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
自己用个BUFFER,把你要发送的数据格式组包放进BUFFER里,再把BUFFER用MSCOMM发送出去
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
简单的说,就是数组
在线时间0 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 24, 距离下一级还需 176 积分
一粒金砂(中级), 积分 24, 距离下一级还需 176 积分
引用 5 楼 luixing67 的回复:
简单的说,就是数组
你的意思是创建一个数组,把那边要求的帧头+数据+帧尾放在这个数组中发送出去咯?
在线时间37 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
你发送出去的数据
需要是十六进制数据
不能够是ASCII码
声明一个缓冲区
把要发送的十六进制数据存储在里面
0x10包头,0x16包尾
你先用PC串口调试助手测试一下
自收发也行
看看你发送出去的东西
到底是不是0x10开头,0x16结尾的
你同事那边的汇编程序肯定是不行的
其实是比较简单的
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
以上各位说的很详细了
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
建议都用16进制通讯,
通讯协议可以你们协商,
商量一个你能做到的协议不就ok,
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
OK,搞定了,结贴
& && && && && & string s = ((Button)sender).T
& && && && && & byte[] b=new byte[6];
& && && && && & b[0] = 0x10;
& && && && && & b[1] = 0x80;
& && && && && & b[2] = byte.Parse(s);
& && && && && & b[3] = 0x00;
& && && && && & int a = 128 + int.Parse(s);
& && && && && & b[4] = byte.Parse((a%256).ToString());
& && && && && & b[5] = 0x16;
& && && && && & this.serialPort1.Write(b, 0, 6);
复制代码
Powered by
逛了这许久,何不进去瞧瞧?}

我要回帖

更多关于 c 串口通信数据包解析 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信