你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

串口接收字符串类型数据?

[复制链接]
qazplm3218 提问时间:2020-2-11 22:52 /
串口通讯,中断接收串口助手发过来的字符串类型的数据比如:ABCD1234,中断接收里用组来保存接收的字符串类型数据,uint8_t   TEMP[9];
A存入TEMP[0],B存入TEMP[0],C存入TEMP[2]依次存入,直到4存入TEMP[7],
问题是:如何将数组的的字符重新连接起来保存?如何定义新的变量str?使str="ABCD1234"?

收藏 评论6 发布时间:2020-2-11 22:52

举报

6个回答
radio2radio 回答时间:2020-2-11 23:30:15
TEMP[] 与 str = “ABCD1234” 的要相等,就是 TEMP[8] 必须是“0x00”:

TEMP[8] = 0;
memcpy(str, TEMP, 9);

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

mylovemcu 回答时间:2020-2-12 08:34:38
定义一个  uint8_t   str;

str = temp;



qazplm3218 回答时间:2020-2-12 21:20:51
radio2radio 发表于 2020-2-11 23:30
TEMP[] 与 str = “ABCD1234” 的要相等,就是 TEMP[8] 必须是“0x00”:

TEMP[8] = 0;

uint8_t TEMP[3];
uint8_t  *str=0;
memcpy(str,TEMP,3);编译成功,但是程序执行到memcpy(str,TEMP,3);系统直接死机?不知道是什么原因,是数据类型定义错误??


uint8_t TEMP[3];
uint8_t  str=0;
memcpy(str,TEMP,3);
编译失败,错误信息如下:

main.c(81): error:  #167: argument of type "uint8_t" is incompatible with parameter of type "void *restrict"
        memcpy(str,RxBuffer1,3);

radio2radio 回答时间:2020-2-12 22:07:48
初始化  uint8_t str = "1234567890";

如果要收3个字节,  TEMP[3]=0;     memcpy(str, TEMP, 4);
qazplm3218 回答时间:2020-2-12 22:30:11
radio2radio 发表于 2020-2-12 22:07
初始化  uint8_t str = "1234567890";

如果要收3个字节,  TEMP[3]=0;     memcpy(str, TEMP, 4);

初始化  uint8_t str = "1234567890";  uint8_t TEMP[3];

接收2个字节,  TEMP[2]=0;     memcpy(str, TEMP, 3);
编译错误
main.c(38): error:  #144: a value of type "char *" cannot be used to initialize an entity of type "uint8_t"
  uint8_t  str="1234567890";
main.c(81): error:  #167: argument of type "uint8_t" is incompatible with parameter of type "void *restrict"
        memcpy(str,TEMP,3);
radio2radio 回答时间:2020-2-12 22:48:06
改呀,str的 uint8_t 改为char类型,我错。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版