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

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

[复制链接]
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版