[问题] VC2010 writefile to RS232

楼主: mjchicken (狐狸)   2014-07-30 16:31:29
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2010 Express
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
vc内建的windows.h
问题(Question):
使用writefile这个function后
在想要输入的字串中
char data[] = "0xFF";
想要送出1个byte 16进位资料如 0xFF 结果送出的字串被当成 4个bytes 0xFF
预期的正确结果(Expected Output):
送出RS232是1个byte以0xFF表示
错误结果(Wrong Output):
送出4个bytes的0xFF,应该是被当4个字符来看待
程式码(Code):(请善用置底文网页, 记得排版)
主要的部分:
char data[] = "0xFF";
DWORD size = (DWORD)strlen(data);
WriteFile( hFile, data, size, &dwBytesWritten, NULL);
补充说明(Supplement):
确定DCB设置都没问题,COM1的机器也收的到
作者: azureblaze (AzureBlaze)   2014-07-30 16:43:00
"0xFF" 不就4个byte '0' 'x' 'F' 'F'?{0xFF}怎么送的,不会是去strlen他吧?
楼主: mjchicken (狐狸)   2014-07-30 16:48:00
没错 可能以前学资料结构太懒散 这边开始苦手就是照上面补充说明的定义data然后后面没变直接丢出去希望有奇蹟发生之类的妄想
作者: celen99 (珍惜每一天)   2014-07-30 16:51:00
要转成binary再送吧?
楼主: mjchicken (狐狸)   2014-07-30 16:52:00
可能是我表达不好,0xFF应该是一个Byte的对应机器指令有点像ASCii里面的A实际上是0x41的意思c大 所以我的data要以int data[] = {11...111};//16个1来写进去吗
作者: celen99 (珍惜每一天)   2014-07-30 16:57:00
请参考 http://sourceforge.net/projects/realterm/里面有教 转binary
楼主: mjchicken (狐狸)   2014-07-30 17:02:00
先谢后读 立刻研究
作者: celen99 (珍惜每一天)   2014-07-30 17:25:00
不好意思给错了http://www.haolizi.net/example/view_705.html 这个是我用的
楼主: mjchicken (狐狸)   2014-07-30 17:35:00
再谢续读 XD
作者: azureblaze (AzureBlaze)   2014-07-30 17:49:00
分清楚什么是字串什么是阵列 什么东西可以strlen
作者: gg1122 (99通未接来电)   2014-07-30 23:39:00
一个byte 循环写四次就好 直接丢255给他 别管字串了
作者: Killercat (杀人猫™)   2014-07-31 10:31:00
char = (char)0xff; 不就可以了嘛 o_oa??
楼主: mjchicken (狐狸)   2014-07-31 11:41:00
看完c大的连结之后似乎又略懂了一些现在进行实际操作k大我现在比较了解这方面的资料结构了 你说的没错感谢c大和大家的帮忙,已正常运作 (Y)

Links booklink

Contact Us: admin [ a t ] ucptt.com