STM32——Keil5的编译警告和错误订正

这是第一次写博客,这里都是我在修改stm32代码遇到的一些警告和错误的改正,其中有很多解决方法都是在网上找的,也有一些还没解决的,望指点。


#513-D …\HARDWARE\1U\src\Uart.c(1134): warning: #513-D: a value of type “char *” cannot be assigned to an entity of type "uchar "
p = strrchr(Command,’
’);
修改

#513 …\HARDWARE\src\uart.c(396): error: #513: a value of type “u8 *” cannot be assigned to an entity of type “uint8_t”
temp = USART2_RX_BUF;
修改

#1293-D …\HARDWARE\1U\src\Uart.c(1114): warning: #1293-D: assignment in condition(转让的条件)
……
if(p = strrchr(Command,’’))
{……}
修正:…….
p = strrchr(Command,’
’)
if§ {……}

#375-D …\1u\v2.3xe\API…/hal/si_hal.h(161): warning: #375-D: declaration requires a typedef name
};
修改:将有问题的变量,定义好

#1-D …\HEADER\head.h(49): warning: #1-D: last line of file ends without a newline
#endif
修改:在末尾添加空行

#9-D …\EDID\si_edid.c(483): warning: #9-D: nested comment is not allowed
/* Write to selected EDID ram. *
修改:(不允许嵌套注释)

#550-D …\API\si_api9187B.c(53): warning: #550-D: variable “l_stableHdcp1” was set but never used
static BOOL l_stableHdcp1[PortNumber] = {false};/Y/
修改:在定义的变量前添加volatile 修饰关键字
分析:1、定义的变量在下面代码中,执行函数并将函数返回值赋值给该变量,然而并没有使用该返回值;编译器对这种情况会做优化,分析出函数的返回值没有被使用,给变量附的值被编译器省略,于是只剩该变量,并没有使用变量
2、定义的变量没有使用,而且有同名的局部变量

#177-D …\EDID\si_edid.c(554): warning: #177-D: variable “temp” was declared but never referenced
uint8_t temp = 0;
修改:(定义了没有使用)注释该变量或删除,或使用该变量

#223-D …\HAL\Time.c(103): warning: #223-D: function “NOP” declared implicitly
NOP();
修改:1、在定义NOP()的*.c对应的*.h添加该函数的声明
2、不用可以注释或删除
3、在调用该函数的.c文件添加对应的.h头文件
4、在头文件的#ifndef _XXX_H——#define _XXX_H——#endif
有重复定义_XXX_H,修改_XXX_H名字就好

#128-D …\HAL\uart.c(43): warning: #128-D: loop is not reachable(循环不可到达)
while(*str != ‘\0’){
修改:循环体有问题,不能执行下面的程序,
1、 修改循环条件
2、 删除循环后面的执行语句

L6218E XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
修改:1、寻找xxxx.o对应的.c/.s文件进行定义xxx或删除xxx
2、可能没有包含对应的.h文件
3、可能定义变量或函数的.c文件没有添加
4、调用的xxx变量或函数,而没有定义该变量或函数

#111-D main.c(175): warning: #111-D: statement is unreachable
return 0;
修改:这只是说函数不会执行到这里,这种情况是上面代码有while(1)

#188-D …\HARDWARE\INIT\Init.c(9): warning: #188-D: enumerated type mixed with another type(枚举类型与另一种类型混合)
|RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE);
修改:删除一个或将重名的更换另一个名字

#5 …\HARDWARE\TIME\time.h(16): error: #5:

评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值