001 - hello world

初衷

有幸接觸到stm32這個平臺,之前都是在學校接觸過單片機(年代久遠),平常工作中一直是以Android開發爲主,對於系統底層的硬件是怎麼交互的一點兒也沒了解,初次接觸stm32以下幾個地方引起了我的好奇心,想要一探究竟:

  • 最小系統板stm32F103C8T6相信很多和我類似的朋友都會接觸到,1688價格只有8塊錢,裏面可以運行程序,各種四軸飛行器、充電樁、智能電錶等裏面都是它,好驚奇
  • 上面包含了大量硬件接口:UART、GPIO、SPI、I2C、USB、CAN等一堆接口,這小東西真是五臟俱全呢
  • 主頻72mhz,想起來快接近諾基亞塞班手機當時的頻率了哈哈哈,上面可以跑個小型的操作系統,例如rt-thread,人家是國內開源的,不禁想去了解下一個操作系統是怎麼搞起來的,怎麼應對和解決系統資源的分配利用的,好奇
  • 內存20kb,存儲128kb,這個垃圾,我大Android起步都是512mb,想去了解下這能幹個啥,好奇
  • Android的HAL層是用戶態實現的硬件驅動,想去了解下這些外設硬件都是怎麼交互的,剛好有這個stm32,容我去一探究竟

起鍋

硬件環境

巧婦難爲無米之炊,硬件首先得有呀,下面是我在調試使用過程中用到的硬件:

  • STM32F103C8T6:在1688上搜索STM32F103C8T6最小系統,找8塊錢那個就行了
    STM32F103C8T6最小系統板
  • elink32:stm32的調試工具有st-link、elink、jlink等多種,我這裏使用elink-32,唯一在我的ubuntu機器上不會很快損壞的設備,之前在淘寶的16塊錢的st-link被我搞壞了5個,你敢信,購買鏈接請自行淘寶,elink-32使用cmsis-dap/swd方式進行調試
    elink-32調試工具
  • USB轉串口線:以我目前淺顯的知識來說,要這傢伙是用來輸出log的,剛開始在沒有adb的情況下愣是沒習慣這種打個log還需要自己動手的情況,而且由於debug對於某些性能敏感的情況會出現調試沒bug,運行稀爛一地的情況,雖然串口輸出也沒見得多高效,汗- -!
    在這裏插入圖片描述

軟件環境

工慾善其事必先利其器,軟件不得到位,這屁東西真實難伺候,下面是我用到的軟件:

  • sw4stm32:這他喵是個跨平臺的stm32開發工具,基於eclipse開發,有下面的特點:
    • 跨平臺,windows、mac、linux都可以用
    • 包含交叉編譯,不用自己糾結咋麼編譯
    • 支持團隊管理,各種版本管理軟件eclipse上熟悉的工具走起
    • 支持stlink、elink等多種調試工具
      這個工具需要在他的網站上註冊下載,截止寫這篇文章時linux上的版本是2.9,可以從這裏查找相應的系統版本
  • CubeMx:這個就是神器了,它是stm32平臺使用UI界面配置stm32引腳功能、時鐘、中間件等一系列東西的工具,有了它再也不用翻stm32的文檔去糾結怎麼配置時鐘了,一鍵搞定,美得很。它可以從這裏下載
    CubeMx UI配置工具
  • 串口工具:這個選擇比較多,有SecureCRT、putty一堆,請選擇自己喜歡熟悉的
    SecureCRT串口小工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章