新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 新一代嵌入式微處理器STM32F103開發與應用

        新一代嵌入式微處理器STM32F103開發與應用

        作者: 時間:2011-04-22 來源:網絡 收藏

          3.2 流程

         ?。?1)用J- L ink仿真器將PC 機和板連接起來。

         ?。?2)使用K eil V ision4 IDE平臺創建新工程, 編寫源程序。

          打開Ke il V ision4 軟件, 創建新的工程文件, 為該工程選擇器件: STM icroe lectron ics 公司的R8芯片, 單擊確定后會彈出對話框, 提示是否選擇將啟動代碼添加到目標工程。啟動代碼用來完成系統的初始化工作, 對于系統來說是必不可少的。選擇??是 將啟動代碼加入到目標工程, 這樣可以大大節省啟動代碼的編寫工作。工程創建完畢后, 即可在該工程下新建C 文件, 編寫源程序, 完成后將其添加到工程中。最后將庫文件STM32F10xRLIB 和STM32F10xDLIB 也添加到工程中。至此, 程序創建工作結束。所需源文件及功能如表2示。

        表2 完整工程所需文件

        完整工程所需文件


         ?。?3)程序的編譯、下載、仿真和調試等。

          程序編寫完成后即可編譯文件, 編譯無錯誤后選擇Options選項, 在D ebug程序編譯鏈接成功之后, 選擇Pro ject /Opt ions for Targe,t 打開對話框后, 選擇Debug選項卡, 在U se下拉按鈕中選擇Cortex- M3 J- L ink, 選擇好后點擊settings, 在彈出的對話框中點擊Add按鈕, 選擇STM32F10xM ed- density Flash。點擊OK 完成配置。通過Load即可將程序下載到目標器件中。如圖1所示。

          如果需要對程序進行在線調試, 選擇S tart /Stop Debug Session, 這時可以插入斷點、設置指針、單步執行、復位等, 還可以觀察各個寄存器值的變化, 進行波形仿真??傊梢院芊奖愕脑诰€調試程序。

          4 程序開發實例

          下面以溫度測量為例, 具體介紹處理器的開發使用方法。該處理器帶有12位逐次逼近式ADC, 其輸入量程為VREF- ~ VREF+ , 在LQFP64引腳或更少的引腳封裝形式中, 它們在芯片內部與ADC 的地VSSA和電源VDDA相連。由于STM32處理器在本設計中采用33V 電壓供電, 因此其輸入量程為0~ 33V。

          處理器內部自帶一個溫度傳感器, 它感知到MPU 周圍的溫度變化, 將其轉化為電壓的變化。該傳感器的溫度適應范圍很寬, 可以測量- 40℃~ + 125℃之間變化的溫度值, 轉換精度為±1.5 ℃ , 能夠較好的滿足溫度測量的任務。

          4.1 AD轉換和數據傳輸

          通常情況下, 內部溫度傳感器是關閉的, 為了使其正常工作, 首先需要選擇ADC _IN16通道, 因為該通道是內部通道, 與溫度傳感器直接相連, 其次要設置相關功能寄存器ADC _CR2的TSVREFE位, 開啟溫度傳感器和VREFINT通道。

          編寫main c文件時, 首先配置系統時鐘, 然后進行引腳配置, 主要是為串口數據發送和接收配置引腳,本設計采用通用I /O 口PB10作為串口發送引腳, 配置為推挽式輸出, 速度為50MH z; 將通用I /O 口PB11作為串口接收引腳, 浮空輸入模式。然后配置串口工作方式及中斷, 設置波特率為9600Baud、8位數據位、無校驗位、1位停止位、無硬件流控制。然后使能串口的中斷、發送、接收。將AD 轉換通道設為通道16, 使能溫度傳感器。檢測到ADC 校準寄存器復位完成后, 啟動ADC 校準, 校準完成后軟件觸發啟動ADC 轉換。

          設置w h ile無限循環, 等待串口中斷, 在中斷程序stm32 f10x_ it c文件中, 將轉換結果數據通過串口發送到PC機。流程圖如圖2所示。

        Dubug 選項的配置

        圖1 Dubug 選項的配置

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桂东县| 淮南市| 漯河市| 柳河县| 浏阳市| 丰顺县| 札达县| 揭东县| 襄樊市| 闵行区| 新源县| 广东省| 绥棱县| 揭东县| 鄂伦春自治旗| 永胜县| 靖安县| 荔波县| 建昌县| 濮阳市| 太谷县| 深圳市| 大厂| 融水| 江源县| 徐汇区| 淅川县| 新乡市| 阳江市| 正安县| 宾阳县| 江津市| 沾化县| 宁阳县| 香河县| 林芝县| 泉州市| 伊金霍洛旗| 满洲里市| 板桥市| 罗山县|