查看: 443|回复: 6

[未解决] string转16进制问题

[复制链接]

该用户从未签到

发表于 2019-5-17 10:56 | 显示全部楼层 |阅读模式
哪位大神帮帮忙!!!
用String comdata = "";在串口读到16进制字符串,
现在想提取其中的一个数据comdata[6],
然后转成16进制,
用Serial.write送出去怎么办?
卡在这很久了!!!
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2019-5-17 13:00 | 显示全部楼层
    你需要 sscanf,用 %x 参数就可以抽出 char* 字串中的 HEX 数值。
    但是这里是 String 类型,需要先转换到 char* 然后再操作,大致如下:

    2019-05-17_125522.png

    该用户从未签到

     楼主| 发表于 2019-5-21 09:52 | 显示全部楼层
    本帖最后由 zyjun 于 2019-5-21 09:54 编辑

    我的项目里还须要将字符串里指定位置的字符提取出来(比如第3个和第4个字符),再和其它的16进制字符连接起来(我用的是char[]格式),最后用Serialwrite把拼接后的字符串送出去,需要怎么写代码?望不吝赐教,万分感谢!

    该用户从未签到

     楼主| 发表于 2019-5-21 09:55 | 显示全部楼层
    t3486784401 发表于 2019-5-17 13:00
    你需要 sscanf,用 %x 参数就可以抽出 char* 字串中的 HEX 数值。
    但是这里是 String 类型,需要先转换到 c ...

    我的项目里还须要将字符串里指定位置的字符提取出来(比如第3个和第4个字符),再和其它的16进制字符连接起来(我用的是char[]格式),最后用Serialwrite把拼接后的字符串送出去,需要怎么写代码?望不吝赐教,万分感谢!
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2019-5-21 11:43 | 显示全部楼层
    zyjun 发表于 2019-5-21 09:55
    我的项目里还须要将字符串里指定位置的字符提取出来(比如第3个和第4个字符),再和其它的16进制字符连接 ...

    用 strcat

    该用户从未签到

     楼主| 发表于 2019-5-21 17:19 | 显示全部楼层
    t3486784401 发表于 2019-5-17 13:00
    你需要 sscanf,用 %x 参数就可以抽出 char* 字串中的 HEX 数值。
    但是这里是 String 类型,需要先转换到 c ...

    我按您的方法,为什么只能送出最多4个字符,多了就出错
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2019-5-21 23:54 | 显示全部楼层
    zyjun 发表于 2019-5-21 17:19
    我按您的方法,为什么只能送出最多4个字符,多了就出错


    因为 %x 就是抽出 uint16_t 的数据,再长了你需要用 %lx 以及 uint32_t 类型:

    uint32_t v32;
    sscanf(str, "%lx", &v32);

    想要抽出数组(任意长度)的话,需要你自己把 HEX 字符截断,每两位一个字节
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    对于ADC读取按键值的疑问
    对于ADC读取按键值的疑问
    大佬们好 我在一篇帖子上看见了用ADC读取模拟值并判断哪颗按键 我也画了一下板子 这
    ADC模拟输入读取独立按键值
    ADC模拟输入读取独立按键
    在论坛H2O了这么久,给大家分享一个实用的小技巧!在使用按键与单片机进行人机交互时
    【Arduino】108种传感器模块系列实验(97)---0.96寸OLED液晶屏
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器模块系列实验(107)---400KV高压发生器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表