完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

|
本帖最后由 黑眼圈红了 于 2017-2-24 16:49 编辑
我想知道下面这一段串口程序的作用。主要是printHex这个函数,发送一个字节的数据为什么要先发字符‘0’和'x'?求大神讲解 void usatPutChar(uint8 dat) { SBUF = dat; sendFlay = 1; while(sendFlay); } void printHex(uint8 dat) { usatPutChar('0'); usatPutChar('x'); usatPutChar(HexTable[dat >> 4]); usatPutChar(HexTable[dat & 0x0f]); } |
|
相关推荐
26个回答
|
|
|
在C语言中,二级制的前缀是0b,八进制的前缀是0,十六进制的前缀是0x,你这个程序中发送数据前加上0x应该是要告诉接收端,这里发送的数为十六进制数,好让接收端自动识别。
最佳答案
|
|
|
|
|
|
以16进制的形式传输
|
|
|
|
|
|
就是这个意思 假如 10 HEX就是0x0a
|
|
|
|
|
|
发送“0X”,16进制前面都是0x后跟数字。估计是打印16进制数出来
|
|
|
|
|
|
你就记得 你发的其实是字符 。。。0 x * * 类似这样的 但是想要表达的意思是这是个16进制数据 明白了吗?看看ASCII表
|
|
|
|
|
|
可能是要显示十六进制数据【0x】吧,例如:0xFC等等。
|
|
|
|
|
|
为了使接收端知道所收到的是十六进制的数据,在数据开头加上'0x'
|
|
|
|
|
|
函数名是printHex,意思是输出十六进制,0x是16进制。
|
|
|
|
|
|
你牛,你牛 你是大牛,厉害
|
|
|
|
|
|
知道了,谢谢你啊,我还有个问题想问一问,为什么我调用printHex这个程序向PC端返回数据的时候,PC端只能接收到一个字节呢? |
|
|
|
|
|
了解了,谢谢你啊,我还有个问题,为什么我调用printHex这个程序向PC端返回数据的时候,PC端只能接收到一个字节呢? |
|
|
|
|
|
谢谢你啊,了解了,不过我调用该程序的时候为什么PC端只能接收到一个字节呢? |
|
|
|
|
|
明白了,谢谢你,那这程序其实是把一个字节的数据分成两个字节发送,那怎么我的PC端只能接收到一个字节呢?搞不明白
|
|
|
|
|
singleyork 发表于 2017-2-25 08:47 谢谢你,了解啦 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
谢谢你啦,不过为什么我调用这个程序,但是PC端只能接收到一个字节呢?
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16902 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 13:43 , Processed in 1.248125 second(s), Total 110, Slave 92 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2525