當前位置:編程學習大全網 - 源碼下載 - stm32 ucos下串口不能發送數據

stm32 ucos下串口不能發送數據

問題壹步步解決,

壹直停在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

  • 上一篇:如何計算源代碼的劃分
  • 下一篇:Wifi運營平臺源代碼
  • copyright 2024編程學習大全網