原创 小白關於keil4調試仿真的幾個問題:一直停在systeminit中的do,while;程序一直停在啓動文件中的BX R0;void HardFault_Handler(void),

分享學習,共同成長:這幾個問題都是新手比較頭痛的,新手在出現HardFault時,可能不是因爲內存溢出,訪問越界或是堆棧溢出,有可能僅僅只是自己一些最基本的規則沒弄清楚而導致,所以分享下自己一些小問題,讓新手朋友們出現類似問題可以借鑑下;

原创 PIC單片機在線仿真正常之後重新上電程序沒運行

                               PIC單片機在線仿真正常之後重新上電程序沒運行  本次純屬學習記錄分享:           本次使用的是PIC16F886,仿真器爲PICkit3,剛開始出現的現象就是在線仿

原创 error: #29: expected an expression,error: #140: too many arguments in function call

新手學習stm32遇到的小問題分享:小白有時候頭腦發熱就會出現低級錯誤,以此自戒,函數調用出現錯誤,函數只有在定義或聲明時需要定義參數才需要用到數據類型,如果調用時再使用數據類型就會出現一下問題,只需把R

原创 ucosII移植:可重入代碼

ucosII移植:可重入代碼       先來點網上的書面化的解釋:µC/OS是多任務內核,函數可能會被多個任務調用,代碼的重入性是保證完成多任務的基礎。可重入代碼指的是可被多個體任務同時調用,而不會破壞數據的一段代碼,或者說代碼具有在

原创 爲什麼用了#ifndef還說我重複定義?

在keil4中的頭文件已經使用宏開關#ifndef、#endif,但還是出現重複定義的問題: 因爲#ifndef只能保證重複包含時,只包含一次。但在不同的C文件是分別進行編譯的,所以另一個C語言裏的#define對另一個C文件不起作用。也

原创 error: #268: declaration may not appear after executabl statement in block

小白的問題:stm32用keil4編譯時出現:error:  #268: declaration may not appear after executabl statement in block         出現這個錯誤的原因在於C

原创 Error: L6218E: Undefined symbol main (referred from entry9a.o).

Error: L6218E: Undefined symbol main (referred from entry9a.o). Error: L6218E: Undefined symbol main (referred from rte

原创 stm32爲什麼用printf重定向到串口第一個字符打印不出

stm32用printf函數重定向到串口USART1發現第一個字符沒打印出來具體如下: 剛開始修改fputc函數如下: int fputc(int ch,FILE *f) { USART_SendData(USART1,(uint8_t)

原创 C語言中常量後綴,u或U,l或L,f或F問題

小白在學習過程中有時會在程序中看到0u或是0ul等常量有後綴的情況,如果沒接觸到C語言常量後綴的話可能就有點疑惑~ 其中的u爲unsigned,l爲long,f爲float           C語言中常量的默情況:整形默認爲有符號int

原创 stm32爲什麼給有些寄存器賦值確不會影響其他位?USARTx->SR = (uint16_t)~USART_FLAG

新手小白可能會遇到的問題:stm32爲什麼給有些寄存器賦值確不會影響其他位?在stm32的庫函數中可以看到有的關於位的操作不是用位與位或,而是直接賦值,但確不會影響其他位,例如:USARTx->SR = (uint16_t)~USART_