STM32開發過程的常見問題

STM32開發過程中遇到的一些問題,記錄如下。

Q1:下載後程序不運行,反覆排查代碼沒問題。
A1: 棧空間太小,打開startup_stm32f10x_hd.s,把 Stack_Size EQU 0x0200 後面這個數改成0x0800就好了(512 > 2000)。

Q2:DAC+DMA生成正弦波,有時正常,有時不正常。
A2: DAC_InitStructure結構中少初始化了一項DAC_LFSRUnmask_TriangleAmplitude,運行時該參數不確定,所以時有時無,加上DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;工作正常。STM32函數庫中有很多結構,一定要把各項都初始化,否則出現不穩定的情況很不容易找問題,很費時間。

Q3:TIM1 PWM不工作
A3:TIM1/8是高級定時器,除普通定時器設置外,還要加一句 TIM_CtrlPWMOutputs(TIM1, ENABLE);

Q4:如何把編碼器16位數擴展32位?
A4:在定時器溢出中斷中根據計數方向對擴展的高16位進行借位或進位,但要考慮中斷函數和主循環的數據同步,參看《STM32實戰九 編碼器》中 getData() 方法

Q4:能不能用5V電源?
A4:我把5V和3.3V短接,統一用5V,約2個月,工作正常,估計能用。型號:STM32F103VET6

STM32實戰系列源碼,按鍵/定時器/PWM/ADC/DAC/DMA/濾波
STM32實戰一 初識單片機
STM32實戰二 新建工程
STM32實戰三 C++ IO.cpp
STM32實戰四 定時器和按鍵
STM32實戰五 板載LED顯示數據
STM32實戰六 PWM加移相正交
STM32實戰七 數字濾波
STM32實戰八 DAC/ADC
STM32實戰九 編碼器
STM32開發過程的常見問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章