怎么把一串uchar型数据转化为16进制数发送?

2019-03-24 10:38发布

原本打算发送  7E 01 01 00 01 01 04 0D
原来程序是:
调用:SendString_PH_START("7E 01 01 00 01 01 04 0D");
定义:
void SendString_PH_START(uchar *ptr)
{      
      for(int j=0;j<24;j++)
      {
        while (!(IFG2 & UTXIFG1));              
        TXBUF1 = *ptr++;                     
      }
      while (!(IFG2 & UTXIFG1));
      TXBUF1 = ' ';//回车
}

后来串口调试发现其实要点击“以十六进制数发送”才可以。
那我这样改对不对?貌似没反应啊。。。。
SendString_PH_START("0x7E 0x01 0x01 0x00 0x01 0x01 0x04 0x0D");
void SendString_PH_START(uchar *ptr)
{      
      for(int j=0;j<40;j++)
      {
        while (!(IFG2 & UTXIFG1));              
        TXBUF1 = *ptr++;                     
      }
      while (!(IFG2 & UTXIFG1));
      TXBUF1 = ' ';//回车
}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
面纱如雾
1楼-- · 2019-03-24 19:30
2.jpg
需要这样才正确发送
armcu
2楼-- · 2019-03-24 21:25
 精彩回答 2  元偷偷看……
面纱如雾
3楼-- · 2019-03-25 02:41
armcu 发表于 2014-12-18 10:48
试试这个
定义一个数组,

uchar string[] = {0x7E,0x01,0x01,0x00,0x01,0x01,0x04,0x0D};

void SendString_PH_START(uchar *ptr , int len)
{      
      for(int j=0;j
首先谢谢您!
我的十六进制数之间是空格而不是逗号隔开的,定义数组的时候是不是应该uchar string[] = {0x7E 0x01 0x01 0x00 0x01 0x01 0x04 0x0D};
然后那个len是39,对吗?



armcu
4楼-- · 2019-03-25 04:02

面纱如雾 发表于 2014-12-18 11:03
首先谢谢您!
我的十六进制数之间是空格而不是逗号隔开的,定义数组的时候是不是应该uchar string[] = {0x7E 0x01 0x01 0x00 0x01 0x01 0x04 0x0D};
然后那个len是39,对吗?
逗号只是数组之间的间隔,实际发送的时候是不存在的
面纱如雾
5楼-- · 2019-03-25 08:10
 精彩回答 2  元偷偷看……
armcu
6楼-- · 2019-03-25 11:23
面纱如雾 发表于 2014-12-18 11:17
那调用的时候,那个len算多少?
发送数据长度啊

一周热门 更多>

相关问题

    相关文章