壹直停在while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
不知是哪設置錯了
說明UART狀態標誌位獲取不正確,首先看UART的源代碼,多看看初始化的流程圖,是否完全壹致,還得多看看那些控制寄存器,這也是寫低屋的壹些應有的步聚
使用printf函數,其實是在調用UART的應用,這個函數原形在網上很多地方能找到,這裏面主要是用UART實現C語言裏的printf()函數打印功能壹樣的,只是這裏是通過UART送到PC上顯示
使用printf函數(使用Micro Lib)有如下提示:
.\Obj\uCOSDemo.axf: Error: L6218E: Undefined symbol __use_two_region_memory (referred from stm32f10x_startup.o).
這個錯誤的意思是未定義"use_two_region_memory ",而這個錯誤是在STARTUP裏面,妳個妳說得沒錯!
提示startup.o這人個信息,任何時候調試都要註意了,".O"這說明這是在匯編文件或在.H的頭文件
我認為這是在Startup.s裏面調用了壹些沒定義的變量
.\Obj\uCOSDemo.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o
這錯誤的信息和上面類似:initial_sp 這個變量未定義, 而文件是在entry2裏面
解決這個種問題
首先從低層開始:
1.把其它功能都disable,only enable UART(串口)的功能,看能否打印;
如果不能說明串口程序的問題,解決方法:
a. 首先看源代碼,也可以上STM32的官方網站找源代碼
b. 看連接線,串口接收軟件是否設好對應的BPS和COMS;
2.如果使用串口,就會造成死機,這也說明妳UCOS能正常跑嗎?最好用壹個LED燈,閃來顯示運行狀態
說這些調試方法應該可以拿來到分了吧!謝謝了!有不明白給我EMAIL
handsomehot@foxmail.com