STM32命名規(guī)則STM32開發(fā)板容量BOOT設置平時運行程序時默認設置BOOT0為0,BOOT1為0;若要用串口下載代碼,則需要設置BOOT0為1、BOOT1為0,下載完后改為默認狀態(tài); 供電電源開發(fā)板采用5V供電,請勿同時使用USB和鳳凰端子供電。 外接擴展板時,需確保:
USB仿真器
IO口
-如果涉及強電(繼電器)的控制,采用光電隔離; -負載大(需求電流大)時,需加緩沖。 c.用作ADC輸入時,保證輸入的模擬信號電平不超過3V,否則會燒壞開發(fā)板。
當打開串口的時候,有時會提示“無法打開串口”,“串口被占用”,“串口資源不存在”等信息。 這些信息提示要使用的串口已經被其他進程占用,可以到計算機的設備管理器中進行查看 當知道這個進程是什么,可以到任務管理器中進行關閉; 當不知道這個串口被什么進程占用的時候,就需要從注冊表處理; 在“開始菜單”中的“運行”中輸入regedit,然后點“確定”,打開注冊表編輯器。 按照下圖中的路徑找到COM Name Arbiter。然后在右側“ComDb”上點“右鍵”選擇“刪除”。刪除掉注冊表的這個項目是讓win7系統(tǒng)重新構建COM端口的列表,這樣就可以改掉那些端口被占用的狀態(tài)。 2. 發(fā)送測試數(shù)據(jù),接收端丟失第一個數(shù)據(jù) 硬件復位后,串口發(fā)送首個數(shù)據(jù)之前,先讀取一下USART_SR,則能夠保證首個數(shù)據(jù)發(fā)送時,不出現(xiàn)覆蓋的情況。當然,也有別的方法,比如先清除TC狀態(tài)位,或是在write USART_DR之后,加入一個小延時,讓數(shù)據(jù)發(fā)送完畢,應該也能間接排除這個錯誤。 開發(fā)板使用1、盡量使用合適的保護盒盛裝,不要直接使用裸板,容易損壞元件、造成短路等; 2、確定開發(fā)板工作電壓、工作電流,確定外設版本與接口類型,確定串口工作電平等; 3、常見工作電壓為:5V,7.2V,9V,12V,15V等,通常為5V; 4、常見串口工作電平:1.8V,3.3V,5V,通常為3.3V,個別開發(fā)板串口工作電平1.8v且與芯片直連,容易燒壞; 5、常見工作電流為500mA,1A,2A,4A幾個級別; 6、常見的顯示接口為HDMI,microHDMI,displayport; 7、根據(jù)開發(fā)板工作需要,判斷散熱情況,適當?shù)臑橹餍酒惭b散熱片、散熱風扇; 8、不要超頻工作; 9、不要用手直接抓上電的開發(fā)板。 10、不要長時間讓開發(fā)板供電,有些板卡散熱做的不好,要注意觸摸主芯片有沒有過熱現(xiàn)象。 11、B3、B4、A15默認為JTAG引腳;A13、A14默認為SWD引腳。可使用GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE)開啟SWD而關閉JTAG功能,或用寫寄存器的方式,SWG_CFG[2.0]寫入000; 12、1個 USB 供電最多500mA,且由于導線電阻存在,供到開發(fā)板的電壓一般都不會有5V,如果使用了很多大負載外,比設比4.3 寸屏、7寸屏、網(wǎng)絡攝像頭模塊等,那么可能引起 USB 供電不夠,所以如果是使用 4.3 4.3屏/7 寸屏,或者同時用到多個模塊的時候, 建議大家使用一個獨立電源供電。如果沒有獨立電源,建議可以同時插 2個 USB 口,并插上 JTAG,這樣供電可以更足一些。 燒芯片情況,主要是靜電原因:1、接入電腦 USB時燒了。電腦USB口帶靜電,然后接入到核心板,用手拿著核心板,容易導致燒掉核心板,尤其是身體碰到金屬和地的時候。盡量不要用手直接拿核心板,身體不要碰到地面(穿鞋子)。 2、用開發(fā)板做智能車,小車跑的過程中燒了。車輪與賽道摩擦的過程中使得小車帶電,把電引到核心板就會燒了核心板??梢杂缅a紙包住車底盤來隔離保護核心板。銅屑等金屬碰到芯片的管腳短路,建議用黑膠布包著核心板上的主芯片。小車跑的過程中碰撞,容易導致短路,導致核心板燒了。對于露出金屬表面的電路都盡量用黑膠布包緊。電機剎車加速導致產生反沖電流,如果IO口沒經過隔離保護而直接接入電機驅動模塊,就容易出現(xiàn)燒芯片情況。建議IO口經過隔離保護電路后才接入電機驅動模塊。舵機也是如此,要進行隔離(舵機內部也是電機)。 3、超頻使用。超頻其實是對單片機損耗很大的,雖然可以提供性能,但也更容易燒壞。頻率一般求穩(wěn)定,不建議設置最高極限頻率。環(huán)境溫度高時候,如果超頻過高,導致發(fā)熱偏大,容易導致芯片燒掉的??梢钥紤]安裝散熱片和降低頻率 4、電源管腳短路或者電源電壓拉低,芯片發(fā)熱。這是芯片內部的電源模塊損壞導致的。一般換個芯片就可以解決。 5、切記不要GPIO配置輸出高電平,然后硬件又接地這種類似的短路。非常容易燒板子的!不要以為程序就不會燒板子。 6、單片機出現(xiàn)芯片發(fā)熱,但可下載程序,可運行程序。這是芯片內部的電源模塊損壞導致的,加大3.3V和GDN之間的電容,可減少發(fā)熱,但最好是換個芯片。 芯片燒壞,只能從步驟,實驗結果,推測原因。 程序調試
藍色箭頭處可直接照填,橙色箭頭處填你所用的開發(fā)板型號。 2. 在線調試——連接好板子,可在線調試。
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE); 其次是 GPIO_PinRemapConfig(GPIO_FullRemap_USARTx, ENABLE); x可以是1、2、3等的串口號。 最后是開時鐘 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE) MDK(Keil)使用技巧1. 快速找到函數(shù)定義 在閱讀代碼時,為了要知道某個函數(shù)所實現(xiàn)的功能以及其他具體的情況,往往需要查看某一個函數(shù)的定義。首先,我們的光標要選中該函數(shù),再按下快捷鍵【F12】然后就可以跳到函數(shù)的定義處了;或者單擊右鍵,然后在彈出來的快捷菜單中選擇“Go To Definition Of ‘xxx’”(“xxx”為我們選中的函數(shù)名)。 2. 批量注釋和批量取消注釋 在編寫函數(shù)的過程中,往往避免不了出現(xiàn)各種各樣的問題,出問題時在調試的過程中需要注釋一些代碼和對一些代碼進行取消之前的注釋,以此來對代碼進行測試和完善。 3. 整段縮進 選中整段后,按table鍵即可一起縮進;整段反向縮進,按shift+table。 4. 用戶自定義關鍵字 進入User Keywords 選項卡,C/C++ Editor Files,在右邊的 User Keywords 對話框下面輸入自己定義的關鍵字: 5. 語法檢測和代碼提示 keil MDK5 支持代碼提示與動態(tài)語法檢測功能,打開配置對話框,選擇 Text Completion 選項卡。 Strut/Class Members,用于開啟結構體/類成員提示功能。 Function Parameters,用于開啟函數(shù)參數(shù)提示功能。 Symbols after xx characters,用于開啟代碼提示功能。 Dynamic Syntax Checking,則用于開啟動態(tài)語法檢測。 6. 代碼補全 可以在configuration(配置項)的Editor(編輯器)選項卡里設置漢語字符編碼GB23132,保證復制出來的漢語注釋不會亂碼,此外,可以在User Keywords(用戶自定義關鍵字)選項卡設置自己常用的關鍵字,Shortcut Keys(快捷鍵)設置符合自己使用習慣的快捷鍵,尤其是Text Completion(代碼補全)非常實用。 Show Code Completion List for (代碼自動補全列表) struct/class Members (結構體/類成員) Function Parameters (函數(shù)參數(shù)列表) Symbols after 4 Characters ENTER/TAB all fill-up character (enter/tab鍵自動補全) Dynamic syntax Checking (動態(tài)語法檢查) Enable (打開)(此選項會導致誤報,只要編譯通過便可不予理會) STM32工程目錄下面的組以及重要文件講解1.組 USER 下面存放的主要是用戶代碼。system_stm32f10x.c 里面主要是系統(tǒng)時鐘初始化函數(shù) SystemInit 相關的定義,一般情況下文件用戶不需要修改。 stm32f10x_it.c 里面存放的是部分中斷服務函數(shù),main.c函數(shù)主要存放的是主函數(shù)。 2.組 HARDWARE 下面存放的是每個實驗的外設驅動代碼,他的實現(xiàn)是通過調用 FWLib下面的固件庫文件實現(xiàn)的,比如 led.c 里面調用 stm32f10x_gpio.c 里面的函數(shù)對 led 進行初始化。 3.組 SYSTEM 是 ALIENTEK 提供的共用代碼, 包含 Systick 延時函數(shù), IO 口位帶操作以及串口相關函數(shù) 4.組 CORE 下面存放的是固件庫必須的核心文件和啟動文件。這里面的文件用戶不需要修 改。 5.組 FWLib 下面存放的是 ST 官方提供的外設驅動固件庫文件,這些文件大家可以根據(jù)工程需要來添加和刪除。每個 stm32f10x_ppp.c 源文件對應一個 stm32f10x_ppp.h 頭文件 6.README 分組主要就是添加了 README.TXT 說明文件,對實驗操作進行相關說明 STM32 的 IO 口可以由軟件配置成 8 種模式 1、 輸入浮空 2、 輸入上拉 3、 輸入下拉 4、 模擬輸入 5、 開漏輸出 6、 推挽輸出 7、 推挽式復用功能 8、 開漏復用功能 每個 IO 端口都有 7 個寄存器來控制,每個寄存器的詳細使用方法,可以參考《STM32 中文參考手冊 V10》 P105~P129。 每個 IO 口可以自由編程, 但 IO 口寄存器必須要按 32 位字被訪問 |
|