首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

VC++ DLL 串口与单片机通信解决思路

2012-02-07 
VC++DLL 串口与单片机通信说明:根据传入的字符串发送信息到COM口上,以供播报语音,提供接口。参数:content :

VC++ DLL 串口与单片机通信
说明:根据传入的字符串发送信息到COM口上,以供播报语音,提供接口。
参数:
content :要发送的内容;

传送时要组成帧发送给单片机;

组帧发送1-8-1格式 帧格式如[:P018回车符]:是帧头P是命令帧,01是要读的字节长度;8是要读的内容<100byte不定长最后要加上回车符;

bool test(){
unsigned char content[]="abc";
DWORD wCount = 0;
BYTE byte;
int len,i;
unsigned char lenc[2];


len=strlen((char*)content);
 
lenc=(char)len;
byte=0x3A;
WriteFile(hCom, &byte, 1, &wCount, NULL);
byte=0x50;
WriteFile(hCom, &byte, 1, &wCount, NULL);
//
byte=0x30;
WriteFile(hCom, &byte, 1, &wCount, NULL);
byte=0x33;//这个地方.没办法把得到的字符串长度转成ASCII的16进制的值.
WriteFile(hCom, &byte, 1, &wCount, NULL);
//
for(i=0;i<len;i++){
byte=(unsigned)content[i];
WriteFile(hCom, &byte, 1, &wCount, NULL);
}

byte=0x0A;
WriteFile(hCom, &byte, 1, &wCount, NULL);
return true;
 }

无法把得到的INT型的长度.转换为代表ASCii码所代表的16进制的值.如3的值应该是0x33.

有没有好的方法组帧;我定义的是BYTE数组;


[解决办法]
整形可以直接转换成16进制
[解决办法]
自己写各进制之间转换的函数即可。
[解决办法]
ascii'3'转成0x33,直接赋值就可以'3'就是0x33
[解决办法]
学习!
[解决办法]
还没解决吗?怎么这贴子4月22号的还浮在第一页?

[解决办法]
自己转换类型

热点排行