..\HARDWARE\MOTOR\motor.c(27): error: #137: expression must be a modifiable lvalue
时间: 2023-08-15 13:04:07 浏览: 282
这个错误发生在 C 语言的代码中,提示的错误信息是 "#137: expression must be a modifiable lvalue"。这个错误通常发生在你试图修改一个不能修改的值的地方。
在你的代码中,第 27 行出现了这个错误。根据错误提示,你需要检查这一行的表达式,并确保它是一个可以修改的左值(modifiable lvalue)。
在 C 语言中,左值是可以被赋值的表达式,而右值则是不能被赋值的表达式。通常,常量和不可修改的变量都是右值,不能出现在赋值语句的左边。
请检查第 27 行的代码,确认你是否尝试修改了一个不能被修改的值。如果你需要进一步帮助,请提供第 27 行的代码片段,我将尽力帮助你解决问题。
相关问题
..\..\Hardware\myencoder.c(43): error: #137: expression must be a modifiable lvalue
这个错误是在..\..\Hardware\myencoder.c文件的第43行出现的。错误信息是"expression must be a modifiable lvalue"。根据引用\[1\]和引用\[2\]的描述,这个错误可能是因为缺少分号或者漏掉了一个可修改的左值。根据引用\[1\]中的描述,这个错误可能是在声明外部变量或者函数时没有在声明语句的最后加上分号。所以,我建议你仔细检查myencoder.c文件的第43行,确保语句的结尾有分号。如果没有分号,你需要补上分号来解决这个错误。
#### 引用[.reference_title]
- *1* *2* *3* [keil MDK编译器警告和错误详解](https://blog.csdn.net/huanzx/article/details/73294862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
..\HARDWARE1\EXTI\exti.c(31): error: #137: expression must be a modifiable lvalue
这个错误信息提示来自硬件外设中断控制器EXTI(External Interrupt)部分的C源文件`exti.c`,行31处。"expression must be a modifiable lvalue"通常表示编译器在尝试对一个表达式赋值时遇到了问题,该表达式不是一个可以修改的变量或者说不是存储位置(lvalue)。在处理中断相关的代码时,可能是你在试图设置某个中断标志位,但是使用的不是一个可以修改的内存地址。
例如,如果你尝试这样做:
```c
EXTI_InitStructure EXTI_InitStructure = {0};
EXTI_InitStructure.EXTI_Line = LINE_Pin;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; // 错误在这里,可能期待的是一个指针或EXTIHandlers类型的变量
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; // 或者是一个已经声明过的中断标志位
EXTI_Init(&EXTI_InitStructure);
```
解决这个问题,你需要确保你正在操作的对象是可以被修改的,比如一个全局的标志变量或者是中断服务函数中正确声明的结构体成员。检查并修复这一行代码,使其指向一个正确的内存地址,并且有修改权限。
阅读全文