OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7370|回复: 3

Error[Pe137]: expression must be a modifiable lvalue 错误

[复制链接]

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
发表于 2018-7-10 21:23:45 | 显示全部楼层 |阅读模式
10金钱
用IAR编译程序时出现一个错误:
Error[Pe137]: expression must be a modifiable lvalue ,

函数如下:

char* set_P_buffer(unsigned char p_count,unsigned char high_or_low)
{
        char p_buffer[6];
        sprintf(p_buffer,"P%d: %d",p_count,high_or_low);
        return p_buffer;
}


在另一个函数中定义了一个变量char P_Buffer[6];
之后使用下面的语句就会出现上面的错误,
P_Buffer=set_P_buffer(1,1);
有谁遇到过吗?也许是一个很简单的错误,可自己看不出来,多谢指点

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-7-11 02:09:51 | 显示全部楼层
看你这个代码,貌似OK,你得查查其他地方,是否定义了const类型,然后去写。就会报这个错误。
回复

使用道具 举报

28

主题

176

帖子

0

精华

高级会员

Rank: 4

积分
738
金钱
738
注册时间
2014-7-1
在线时间
180 小时
 楼主| 发表于 2018-7-11 09:36:24 | 显示全部楼层
正点原子 发表于 2018-7-11 02:09
看你这个代码,貌似OK,你得查查其他地方,是否定义了const类型,然后去写。就会报这个错误。

貌似是我定义那个变量char P_Buffer[6]有问题,既然上面的函数类型是char*型,那么就应该定义成char* P_Buffer,之后P_Buffer=set_P_buffer(1,1);就可以了
回复

使用道具 举报

11

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2018-2-24
在线时间
44 小时
发表于 2021-10-31 11:50:20 | 显示全部楼层
我也遇到了一样的错误。定义了一个变量:u8 ress;  一个数组:const int buff[10];  然后把串口数据放到数组中:ress=USART_ReceiveData(USART1);  buff[i++]=ress;   想通过循环的方式每次放一帧。但是buff[i++]=ress;这句一直报错,跟你一样。刚看了原子哥的回复,把数组定义中的const 去掉,果然对了。但不太清楚为什么。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表