uint32_t OLED_Pow(uint32_t X, uint32_t Y) { uint32_t Result = 1; while (Y--) { Result *= X; } return Result; }.\Objects\Project.axf: Error: L6200E: Symbol OLED_Pow multiply defined (by oled.o and main.o).
时间: 2023-12-03 17:43:30 浏览: 97
C_Headers.rar_c_headers
这个错误提示是由于你的代码中 `OLED_Pow` 这个函数被重复定义了。可能是因为你在 `oled.c` 和 `main.c` 中都定义了这个函数。
解决方法有两种:
1. 在 `oled.c` 或 `main.c` 中将 `OLED_Pow` 函数的定义删除,只保留一份定义。
2. 将 `OLED_Pow` 函数的定义改为 `static inline`,这样编译器在编译时就会将函数的代码插入到调用处,不会生成一个独立的函数,也就不会出现符号重复定义的错误。修改后的函数定义如下:
```
static inline uint32_t OLED_Pow(uint32_t X, uint32_t Y) {
uint32_t Result = 1;
while (Y--) {
Result *= X;
}
return Result;
}
```
阅读全文