wojiaoguogai 发表于 2021-12-15 17:51 好,谢谢解答,我去试试 |
| 也有可能是你的整型中出现ascii的00,这个在字符串中代表\0 |
|
sprintf_s(tmp_buf, "%s","02"); strcat_s(tmp_buf, "03"); strcat_s(tmp_buf, "3283"); strcat_s(tmp_buf, "12345678"); 这个是没有问题的,问题在你的那个电压转换哪里 |
18936674086 发表于 2021-12-15 16:10 直接将strcat(temp_buf,"3283")实验一下 |
Y_G_G 发表于 2021-12-15 13:50 非常感谢回答 ,我也不是很清楚究竟原因,我现在在这个数组又添加了20位数据,依然没有问题,可就是独独缺失了4位数据,奇了怪了,我再研究研究 |
18936674086 发表于 2021-12-15 07:44 要不是楼上说到,我都没有看到,一组电压数据怎么会用到长度100的数组呢?在我看来,这是一个很恐怖的长度 如果要这么长的数组,先在数组前加限定为xdata,不然的话,用的还是8051原本的RAM STC8F多出来的SRAM是在xdata区的 如果还是不行,那就按我说的,用结构吧 |
Hephaestus 发表于 2021-12-14 22:00 我用的STC8F单片机呢,搞不懂,就这一组ASCII没了,其他组都好好的,难搞 |
| 你这个ONENET_DATA_ASC函数里面一口气定义了112 bytes变量,51应该最多120 byte全局变量+局部变量,链接能通过? |
Y_G_G 发表于 2021-12-14 21:30 这个我是知道的,我复制了好多组ASCII值,就单单这个电压不行,哭了,但是电压已经成功转为ASCII了,太难了 |
|
要把准备复制的数组先转换成ASCII再进行复制 如果数组中有0x00的话,函数就会结束了,因为字符串是以'\0'结束的 其它函数也会用到这个值的,所以,一般都是先转换成ASCII再处理 如果不是这个原理话,那我就不知道了 一般数组之间传递,我都是用结构 当你定义了结构a和结构b之后,就可以像变量一样的:a=b |