4834|5

16

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

Zigbee串口发送数据给PC为何要加 '0'(很不解) [复制链接]

我用了nv;
uint8 A=40;
uint8 B;
...
osal_nv_write(TEST_NV,1,1,&A);
osal_nv_read(TEST_NV,1,1,&B);//
      Buffer[0] = B / 10 + '0' ;
      Buffer[1] = B % 10 + '0' ;
HalUARTWrite(0,Buffer,2);
....
以上写法确实可以成功将数据40写入串口助手,但是为什么要将B拆开发送,而且还个位十位运算上加上'0'?(参考自《Zigbee无线传感网络设计与实现》P118)

d.PNG (1022 Bytes, 下载次数: 4)

d.PNG

dd.PNG (7.59 KB, 下载次数: 4)

dd.PNG
此帖出自RF/无线论坛

最新回复

看到Z-stack2.5.1a协议栈的simpleApp例程,里面也有类似的情况 *pBuf++ = (sensorReading / 10 ) + '0';    // convent msb to ascii 不过看注释,应该就如二楼所说,是转换为ASII码  详情 回复 发表于 2014-9-5 15:09
点赞 关注(1)
 

回复
举报

43

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
加‘0’转换成ASCII
此帖出自RF/无线论坛

点评

能解释再清楚些么,如果是这样,那以后数据要用HalUARTWrite(..,buffer,..)发送数据时,都要把buffer指向的缓存区数据一个个读出来么,我将(是uint8)B=40读入到PC,直接读进去为什么不行呢?是不是HalUARTWrite(..  详情 回复 发表于 2014-7-28 22:08
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
moonyuan 发表于 2014-7-26 23:16
加‘0’转换成ASCII

能解释再清楚些么,如果是这样,那以后数据要用HalUARTWrite(..,buffer,..)发送数据时,都要把buffer指向的缓存区数据一个个读出来么,我将(是uint8)B=40读入到PC,直接读进去为什么不行呢?是不是HalUARTWrite(..,buffer,..)函数机制不太好呢,谢谢
此帖出自RF/无线论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

4
 
你加的0很明显是char类型的,可以把加0和不加0的结果都贴出来下,方便分析。你问的是为什么要加0,但是这个0 是你自己加上去的啊,我们并不知道不加0是什么结果,而加0你认为是对的,难道就是对的。
此帖出自RF/无线论坛
 
 
 

回复

147

帖子

0

TA的资源

一粒金砂(高级)

5
 
打印出来的是'4','0',40输出来是0x28,显示出来是乱码
此帖出自RF/无线论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

6
 
看到Z-stack2.5.1a协议栈的simpleApp例程,里面也有类似的情况
*pBuf++ = (sensorReading / 10 ) + '0';    // convent msb to ascii
不过看注释,应该就如二楼所说,是转换为ASII码
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表