error: #18:6.error: #18: expected a ")"
如果是出現在c檔案中, 多半是因為少了一個")",或者錯誤行有編譯器不識別的字符
如果出現在頭檔案中,錯誤行又是一個函式宣告,多半是因為在函式宣告中有編譯器不認識的字符
error: #20error: #20: identifier "TIM2_IRQChannel" is undefined 誰能說說,哪里錯了
你的韌體庫里的庫檔案沒有添加進工程里面,所以出現未定義的情況。
TIM2_IRQChannel指定時器2的中斷通道沒有定義,其實在韌體庫對這些引數都有定義,宏定義代替了一串暫存器地址資料。需要將.C檔案添加到工程檔案中
warning: #1-D main.c(7): warning: #1-D: last line of file ends without a newline
當使用keil編譯時,彈出這樣的警告資訊:main.c(7): warning: #1-D: last line of file ends without a newline
這個是由于在main函式的“}”后,沒有加回車。
只要在main函式的“}”后加回車鍵,此警告資訊即可消除。
error:#65...test_menu.c(27):error:#65:expected a ";"
你的韌體庫里的庫檔案沒有添加進工程里面,所以出現未定義的情況。
TIM2_IRQChannel指定時器2的中斷通道沒有定義,其實在韌體庫對這些引數都有定義,宏定義代替了一串暫存器地址資料。需要將.C檔案添加到工程檔案中
Error: L6200E Error: L6200E: Symbol temp multiply defined (by wenshidu.o and main.o).在編譯的時候出現了這個問題,但是檢查不出來,希望各位大俠幫幫忙
什么變數你給付了兩次值
你看看是不是那個外部變數你又給賦值了
main.c申明,其他.c檔案對應的.h檔案中用extern參考
warning: #223-D..\..\source\CCxx00_New.C(718): warning: #223-D: function "_NOP_" declared implicitly
在使用的檔案中添加extern void _NOP_();既可
warning: #1295-D..\..\include\CCxx00_New.h(20): warning: #1295-D: Deprecated declaration CC_XCal - give arg types
Error: L6218E: Undefined symbol.\Obj\output.axf: Error: L6218E: Undefined symbol FSMC_NORSRAMCmd (referred from tft_lcd.o).
.\Obj\output.axf: Error: L6218E: Undefined symbol FSMC_NORSRAMInit (referred from tft_lcd.o).
Target not created
你的韌體庫里的庫檔案沒有添加進工程里面,所以出現未定義的情況。
TIM2_IRQChannel指定時器2的中斷通道沒有定義,其實在韌體庫對這些引數都有定義,宏定義代替了一串暫存器地址資料。需要將.C檔案添加到工程檔案中
error: #101:error: #101: has already been declared in the current scope
將
#ifndef __STM32F10x_LIB_H
#define __STM32F10x_LIB_H
#endif調整到最后!
error: #247: function "DelayUs" has already been defined有一個同名的 DelayUs類已經被定義過了
error: #109: expression must have (pointer-to-) function type這個問題就是那19個error中的大部分,意思是運算式需要一個(指標)函式引數,我一開始以為是自己函式宣告或者呼叫上的錯誤,但是看了下發現并沒有錯,后來查了好久發現原來是犯了一個很低級的錯誤:將宏定義和函式名重名了。因為我一開始想的是每一個宏定義對應一個函式名,這樣做起來就比較清晰,但是我卻很傻逼地將函式名每次直接復制到宏名,導致了這種蛋碎的結果。
warning: #61-Dwarning: #68-D:在KeilARM的LPCARM,存在(1<<31)編譯警告問題
main.c(174): warning: #61-D: integer operation result is out of range
main.c(174): warning: #68-D: integer conversion resulted in a change of sign
由于編譯器默認signed int即32位有符號整數型別,而1<<31實際為0x80000000,
這樣就有可能改寫了符號位(最高位)
依此類推,(2<<30),(3<<29)...等都會出現編譯警告問題.
解決辦法為: ((unsigned int)1<<31),((unsigned int)2<<30),...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/97183.html
標籤:單片機/工控
上一篇:tft lcd 驅動打好了,字也能顯示了,請問如何顯示圖片
下一篇:STM32 LCD
