我看了很多的提问,有点糊涂了
我知道在通讯的时候是使用二进制传输的,我现在做一个通讯应答程序,我要向单片机发一条指令,指令格式是十六进制的,我应该将指令代码存入一个二进制的数组里,然后发送吗?
在接收单片机返回数据时,怎么把接收的二进制数转换为十六进制的或者是十进制的呢?望高手赐教

解决方案 »

  1.   

    指令格式完全可是十六进制文本方式的,而由代码来2字节2字节的转成BYTE数据类型.
    http://community.csdn.net/Expert/topic/5383/5383313.xml?temp=7.020205E-02
    上述网址有简化的串口调试精灵代码,你可参考串口通讯中的数据转换.
      

  2.   

    programart_life说的对,数据发送没有格式要求,反正计算机会给你转化为AscII的,接受数据时候,可以设mscomm控件的inputmode属性,具体查一下msdn吧,剩下的就是格式转换,调用相应的函数就可以了
      

  3.   

    串口是字符设备,串口通信实质是发送字符的ASCII码值。在DOS下,字符的ASCII码值为0-127,。对屏幕可显示的字符直接用字符表示,对VB下屏幕不可显示的字符可用CHR()函数来表示。在WINDOWS下,串口通信ASCII码扩展为0-255,而128-255字符屏幕不可显示,就涉及用16进制字符形式表示0-255字符,就带来进制转换问题。
        10进制的0-255,用16进制表示为00-FF
        VB中可用HEX函数将10进制数转换为16进制数的字符形式,
        如 A = HEX(255)
           TEXT1 = A
        在文本框内显示为FF
        在发送时需转换为BYTE数据,用:
        &HFF表示。前&H表示16进制数,后FF是255的16进制数的字符形式