久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    STM32開發經驗、Keil使用技巧與注意事項整理

     xpxys99 2019-09-06

    STM32命名規則

    STM32開發板容量

    BOOT設置

    平時運行程序時默認設置BOOT0為0,BOOT1為0;若要用串口下載代碼,則需要設置BOOT0為1、BOOT1為0,下載完后改為默認狀態;

    供電電源

    開發板采用5V供電,請勿同時使用USB和鳳凰端子供電。

    外接擴展板時,需確保:

    1. 擴展板的VCC和GND之間沒有短路;
    2. 擴展板和開發板之間的VCC是否對應。

    USB仿真器

    1. 不能帶電拔插USB仿真器;
    2. 上電時,先插仿真器,后給開發板供電;
    3. 掉電時,先斷開開發板電源,再拔掉仿真器;
    4. 仿真器操作不當,會燒壞開發板芯片,甚至燒壞電腦主板的USB接口芯片。

    IO口

    • 輸入(IN)
    1. 輸入電壓范圍:高(1)——0V,低(0)——3.3V;有些開發板的IO口可容忍5V,須查看對應的芯片說明手冊。
    2. 如果電壓不能保證在3.3V,采用3V穩壓管(注意限流電阻的選擇)
    • 輸出(OUT)
    1. 輸出電壓范圍:高(1)——0V,低(0)——3.3V;
    2. 注意負載的影響:

    -如果涉及強電(繼電器)的控制,采用光電隔離;

    -負載大(需求電流大)時,需加緩沖。

    c.用作ADC輸入時,保證輸入的模擬信號電平不超過3V,否則會燒壞開發板。

    • 電平
    1. 當不知道某個IO口的電平時,可以用電壓表連接IO口和GND進行測量;或者連一個LED燈看他的亮滅。
    2. 當需要測試IO口脈沖頻率時候(如PWM),也可以用LED燈測試;但當頻率很高以至于LED不能辨別時,可以通過邏輯分析儀測試。
    • 串口
    1. 串口(COM)被占用

    當打開串口的時候,有時會提示“無法打開串口”,“串口被占用”,“串口資源不存在”等信息。

    這些信息提示要使用的串口已經被其他進程占用,可以到計算機的設備管理器中進行查看

    當知道這個進程是什么,可以到任務管理器中進行關閉;

    當不知道這個串口被什么進程占用的時候,就需要從注冊表處理;

    在“開始菜單”中的“運行”中輸入regedit,然后點“確定”,打開注冊表編輯器。

    按照下圖中的路徑找到COM Name Arbiter。然后在右側“ComDb”上點“右鍵”選擇“刪除”。刪除掉注冊表的這個項目是讓win7系統重新構建COM端口的列表,這樣就可以改掉那些端口被占用的狀態。

    2. 發送測試數據,接收端丟失第一個數據

    硬件復位后,串口發送首個數據之前,先讀取一下USART_SR,則能夠保證首個數據發送時,不出現覆蓋的情況。當然,也有別的方法,比如先清除TC狀態位,或是在write USART_DR之后,加入一個小延時,讓數據發送完畢,應該也能間接排除這個錯誤。

    開發板使用

    1、盡量使用合適的保護盒盛裝,不要直接使用裸板,容易損壞元件、造成短路等;

    2、確定開發板工作電壓、工作電流,確定外設版本與接口類型,確定串口工作電平等;

    3、常見工作電壓為:5V,7.2V,9V,12V,15V等,通常為5V;

    4、常見串口工作電平:1.8V,3.3V,5V,通常為3.3V,個別開發板串口工作電平1.8v且與芯片直連,容易燒壞;

    5、常見工作電流為500mA,1A,2A,4A幾個級別;

    6、常見的顯示接口為HDMI,microHDMI,displayport;

    7、根據開發板工作需要,判斷散熱情況,適當的為主芯片安裝散熱片、散熱風扇;

    8、不要超頻工作;

    9、不要用手直接抓上電的開發板。

    10、不要長時間讓開發板供電,有些板卡散熱做的不好,要注意觸摸主芯片有沒有過熱現象。

    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,且由于導線電阻存在,供到開發板的電壓一般都不會有5V,如果使用了很多大負載外,比設比4.3 寸屏、7寸屏、網絡攝像頭模塊等,那么可能引起 USB 供電不夠,所以如果是使用 4.3 4.3屏/7 寸屏,或者同時用到多個模塊的時候, 建議大家使用一個獨立電源供電。如果沒有獨立電源,建議可以同時插 2個 USB 口,并插上 JTAG,這樣供電可以更足一些。

    燒芯片情況,主要是靜電原因:

    1、接入電腦 USB時燒了。電腦USB口帶靜電,然后接入到核心板,用手拿著核心板,容易導致燒掉核心板,尤其是身體碰到金屬和地的時候。盡量不要用手直接拿核心板,身體不要碰到地面(穿鞋子)。

    2、用開發板做智能車,小車跑的過程中燒了。車輪與賽道摩擦的過程中使得小車帶電,把電引到核心板就會燒了核心板。可以用錫紙包住車底盤來隔離保護核心板。銅屑等金屬碰到芯片的管腳短路,建議用黑膠布包著核心板上的主芯片。小車跑的過程中碰撞,容易導致短路,導致核心板燒了。對于露出金屬表面的電路都盡量用黑膠布包緊。電機剎車加速導致產生反沖電流,如果IO口沒經過隔離保護而直接接入電機驅動模塊,就容易出現燒芯片情況。建議IO口經過隔離保護電路后才接入電機驅動模塊。舵機也是如此,要進行隔離(舵機內部也是電機)。

    3、超頻使用。超頻其實是對單片機損耗很大的,雖然可以提供性能,但也更容易燒壞。頻率一般求穩定,不建議設置最高極限頻率。環境溫度高時候,如果超頻過高,導致發熱偏大,容易導致芯片燒掉的。可以考慮安裝散熱片和降低頻率

    4、電源管腳短路或者電源電壓拉低,芯片發熱。這是芯片內部的電源模塊損壞導致的。一般換個芯片就可以解決。

    5、切記不要GPIO配置輸出高電平,然后硬件又接地這種類似的短路。非常容易燒板子的!不要以為程序就不會燒板子。

    6、單片機出現芯片發熱,但可下載程序,可運行程序。這是芯片內部的電源模塊損壞導致的,加大3.3V和GDN之間的電容,可減少發熱,但最好是換個芯片。

    芯片燒壞,只能從步驟,實驗結果,推測原因。

    程序調試

    • 有兩種仿真模式:
    1. 模擬仿真——MDK內部仿真,需要設置一下才可使用。

    藍色箭頭處可直接照填,橙色箭頭處填你所用的開發板型號。

    2. 在線調試——連接好板子,可在線調試。

    • PWM波有毛刺,但把預分頻系數調成199以下就沒有這種現象發生,這種是過沖(振鈴現象),串聯電阻,就可以解決。
    • 串口調試
    1. 程序和串口調試工具的波特率必須要一致,否則無法接收數據、或接收不正確。
    2. 在用到“復用重映射”的時候要先使能AFIO的時鐘

    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. 快速找到函數定義

    在閱讀代碼時,為了要知道某個函數所實現的功能以及其他具體的情況,往往需要查看某一個函數的定義。首先,我們的光標要選中該函數,再按下快捷鍵【F12】然后就可以跳到函數的定義處了;或者單擊右鍵,然后在彈出來的快捷菜單中選擇“Go To Definition Of ‘xxx’”(“xxx”為我們選中的函數名)。

    2. 批量注釋和批量取消注釋

    在編寫函數的過程中,往往避免不了出現各種各樣的問題,出問題時在調試的過程中需要注釋一些代碼和對一些代碼進行取消之前的注釋,以此來對代碼進行測試和完善。

    3. 整段縮進

    選中整段后,按table鍵即可一起縮進;整段反向縮進,按shift+table。

    4. 用戶自定義關鍵字

    進入User Keywords 選項卡,C/C++ Editor Files,在右邊的 User Keywords 對話框下面輸入自己定義的關鍵字:

    5. 語法檢測和代碼提示

    keil MDK5 支持代碼提示與動態語法檢測功能,打開配置對話框,選擇 Text Completion 選項卡。

    Strut/Class Members,用于開啟結構體/類成員提示功能。

    Function Parameters,用于開啟函數參數提示功能。

    Symbols after xx characters,用于開啟代碼提示功能。

    Dynamic Syntax Checking,則用于開啟動態語法檢測。

    6. 代碼補全

    可以在configuration(配置項)的Editor(編輯器)選項卡里設置漢語字符編碼GB23132,保證復制出來的漢語注釋不會亂碼,此外,可以在User Keywords(用戶自定義關鍵字)選項卡設置自己常用的關鍵字,Shortcut Keys(快捷鍵)設置符合自己使用習慣的快捷鍵,尤其是Text Completion(代碼補全)非常實用。

    Show Code Completion List for (代碼自動補全列表)

    struct/class Members (結構體/類成員)

    Function Parameters (函數參數列表)

    Symbols after 4 Characters

    ENTER/TAB all fill-up character (enter/tab鍵自動補全)

    Dynamic syntax Checking (動態語法檢查)

    Enable (打開)(此選項會導致誤報,只要編譯通過便可不予理會)

    STM32工程目錄下面的組以及重要文件講解

    1.組 USER 下面存放的主要是用戶代碼。system_stm32f10x.c 里面主要是系統時鐘初始化函數 SystemInit 相關的定義,一般情況下文件用戶不需要修改。 stm32f10x_it.c 里面存放的是部分中斷服務函數,main.c函數主要存放的是主函數。

    2.組 HARDWARE 下面存放的是每個實驗的外設驅動代碼,他的實現是通過調用 FWLib下面的固件庫文件實現的,比如 led.c 里面調用 stm32f10x_gpio.c 里面的函數對 led 進行初始化。

    3.組 SYSTEM 是 ALIENTEK 提供的共用代碼, 包含 Systick 延時函數, IO 口位帶操作以及串口相關函數

    4.組 CORE 下面存放的是固件庫必須的核心文件和啟動文件。這里面的文件用戶不需要修

    改。

    5.組 FWLib 下面存放的是 ST 官方提供的外設驅動固件庫文件,這些文件大家可以根據工程需要來添加和刪除。每個 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 位字被訪問

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 四虎库影成人在线播放| 精品无码人妻一区二区三区| 少妇AV一区二区三区无码| 无码精品久久久久久人妻中字 | 国产JJZZJJZZ视频全部免费| 国内丰满熟女出轨VIDEOS | 亚洲一卡2卡3卡4卡精品| 亚洲AV永久无码精品三区在线| 亚洲欧美偷国产日韩| 国产精品自在欧美一区| 午夜福利精品国产二区| 亚洲欧美日韩中文字幕一区二区三区 | 人妻少妇偷人精品无码| 欧美极品色午夜在线视频| 边做饭边被躁欧美三级| 欧美成人午夜在线观看视频| 亚洲精品55夜色66夜色| 精品卡通动漫亚洲AV第一页| 久久国产精品波多野结衣AV | 亚洲乱色熟女一区二区三区麻豆| 午夜DY888国产精品影院| 国产成人AV三级在线观看| 国产按头口爆吞精在线视频| 亚洲 一区二区 在线| 国产精品无码无需播放器| 免费AV片在线观看网址| 丰满少妇被猛烈进入高清播放| 无遮挡免费高清羞羞视频| 国产精品普通话国语对白露脸| 18禁裸体动漫美女无遮挡网站| 亚洲欧美日韩成人综合一区| 奇米网777色在线精品| 东京热TOKYO综合久久精品| 国产午精品午夜福利757视频播放| 色老头在线一区二区三区| 性虎精品无码AV导航| 精品一区二区亚洲国产| 国产高清不卡一区二区| 国语做受对白XXXXX在线| 宅男噜噜噜66在线观看| 国产精品午夜福利视频|