..\Source\Drive\UART1.c(66): warning: #187-D: use of "=" where "==" may have been intended if(ucTemp=='S')if((BL_Control='E')&&(Motor_stop == 0))Motor_stop = 1; ..\Source\Drive\UART1.c(67): warning: #187-D: use of "=" where "==" may have been intended if(ucTemp=='R')if((BL_Control='E')&&(Motor_stop == 1))Motor_stop = 0;
时间: 2023-06-20 09:09:19 浏览: 141
这两个警告提示是在C语言中经常出现的错误。它们发生在条件语句中,当我们本意想使用相等运算符“==”时,却错误地使用了赋值运算符“=”,导致代码执行不符合预期。
在第66行代码中,你本意想要判断“BL_Control”是否等于“E”,但是写成了“BL_Control='E'”,这样会将“BL_Control”赋值为字符‘E’,而不是判断它是否等于字符‘E’,所以建议改为“BL_Control == 'E'”。
在第67行代码中也存在同样的错误,建议将“BL_Control = 'E'”改为“BL_Control == 'E'”。
修改后的代码如下:
```c
if (ucTemp == 'S')
if ((BL_Control == 'E') && (Motor_stop == 0))
Motor_stop = 1;
if (ucTemp == 'R')
if ((BL_Control == 'E') && (Motor_stop == 1))
Motor_stop = 0;
```
相关问题
main.c(56): warning: #223-D: function "uart_init" declared implicitly
这个警告提示你在 main.c 文件中使用了一个函数 uart_init,但是该函数没有被显式地声明。这通常意味着你在代码中调用了一个没有定义或者没有声明的函数。
要解决这个警告,你需要在 main.c 文件中添加一个函数原型(函数声明),以便编译器能够识别和正确处理该函数。函数原型的格式为:
```c
return_type function_name(argument_type argument_name);
```
其中,return_type 表示函数返回值的类型,function_name 表示函数名,argument_type 表示函数参数的类型,argument_name 表示函数参数的名称。
假设 uart_init 函数没有返回值,也没有参数,那么你可以在 main.c 文件中添加如下的函数原型:
```c
void uart_init(void);
```
这样编译器就能识别 uart_init 函数了,同时也能消除该警告。
..\..\User\bsp\src\bsp_uart_fifo.c(243): warning: #1294-D: Old-style function comSendBuf_1
这是一个编译器产生的警告,意味着该函数使用了旧式的函数定义方式。建议您将该函数的定义改为新式的函数定义方式,例如:
```
void comSendBuf_1(uint8_t *buf, uint16_t len) {
// 函数体
}
```
或者将编译器的警告级别调整为更低,以避免该警告的出现。