STM8是STMicroelectronics的一系列8位微控制器,已成為成本敏感型產品開發微控制器的常見選擇。該IC不僅價格便宜,而且還包含許多功能和選項,使其適用于許多不同的應用。例如,STM8S系列控制器(我們將在本教程系列中學習)是通用控制器,但還有其他系列,例如用于汽車設計的STM8A和用于低功耗電池供電設計的STM8L,它們擴展了這些控制器的應用。
在本系列教程中,我們將學習如何對STM8S微控制器,更具體地說是STM8S103F3P6進行編程。開始使用這個特定部件號的原因僅僅是因為它的性價比因素。喜歡!!只需0.25美元(約20盧比),我們就可以得到一個8位微控制器,帶有16Mhz內部振蕩器、8kB閃存、10位ADC、UART、SPI和I2C。誰不感興趣?此外,STM8S103F3P6廣受歡迎,因此作為初學者,如果您需要教程之外的幫助,您將獲得足夠的支持。
選擇硬件和軟件開發工具
現在我們已經確定了微控制器,我們將不得不選擇硬件和軟件開發工具來開始我們的學習過程。有很多選擇,這里我選擇了可??以免費使用且易于所有人使用的選項。
STM8S103F3P6開發
ST 8 位微控制器的官方開發板稱為 STM8 Discovery 套件,但我們將使用另一種低成本開發板,您可以從當地供應商或在線商店輕松找到。我們將在本教程中使用的STM8S103F3P6 開發板的圖像 如下所示。
該板僅包含開始開發所需的最少組件。它對面包板友好,適用于緊湊型應用。開發板的內部電路圖如下所示。
仔細看,您會注意到,除了 STM8S103F3p6 控制器之外,我們還有一個復位按鈕來復位控制器。一個電源 LED 和一個測試 LED 連接到 PB5(端口 B 引腳 5)和一個 AMS1117 穩壓器,將 USB 端口的 5V 轉換為控制器的 3.3V。如果需要,也可以使控制器在 5V 上運行。控制器上的不同部件如下所示。我們還有 4 個編程器引腳,即 3.3V、GND、SWIM 和 NRST,可用于輕松編程和調試我們的微控制器。
STM8S103F3P6 編程器
為了對我們的控制器進行編程,我們將使用 便宜且易于在線獲得的ST-LINK v2 。此 ST-LINK v2 板有許多變體(金屬、塑料、金色、粉紅色、裸板),并且都具有相同的用途。我的如下所示,但您可以使用任何類型的 ST-LINK 編程器,引腳排列會有所不同,因此請確保您正確讀取外殼上的引腳排列。ST-Microelectronics 本身也有 ST-LINK V3,可用于一些嚴重的調試。我們暫時不會使用它,因為它有點貴,我們會為將來保存它。
STM8S103F3P6 IDE和編譯器
為 STM8S103F3P6 選擇正確的 IDE 和編譯器令人費解,因為有很多選項可供選擇。可用于 STM8 微控制器的官方工具如下圖所示。
在配置方面,我們有 STM8CubeMx,我嘗試了該軟件,這讓我完全失望。與 STM32Cube 不同, STM8Cube 不能自動生成代碼。它只能為可視化目的生成引腳映射,如果您將代碼從一個控制器移植到另一個控制器,它可能會派上用場。除此之外,我不會使用它。所以在本教程系列中,我們不會使用它。
對于 IDE 和編譯器,我們有很多選項可供選擇。IDE 的前兩個選項是 IAR workbench 和 ST Visual Develop (STVD), 這兩個軟件都感覺像是來自 90 年代,但玩了一段時間后,我發現 STVD 是一個不錯的選擇,因為它是完全免費的。同樣,對于編譯器,我們將使用 Cosmic C 編譯器,同樣只是因為它是完全免費的。選擇這個 IDE 和編譯器的另一個原因是,一旦我們熟悉了環境,應該很容易使用 ST 的任何其他 8 位微控制器,而無需付出太多努力。我們將在本文后面介紹如何使用 Cosmic C 編譯器安裝和設置 STVD。
For Flashing, we will be using ST Visual Programmer (STVP), this tool will automatically get installed when we install STVD. It will be integrated in the IDE itself, helping us to quickly program and debug. The final software will be STMStudio which is an STM8 Monitoring software. The software can help with real-time debugging of STM8 and has some cool features like monitoring variable value, plotting graph, etc. I have not experimented enough with this software. And, at least for the first few tutorials, we won’t be using this software since we won’t need big debugging requirements.
STM8S 標準外設庫: ST Microelectronics 提供了一組庫來簡化 STM8S 微控制器的代碼開發,這個庫被稱為“標準外設庫”或簡稱 SPL。該庫很酷,除了它是通過記住 STM8S/A 8 位系列中所有可能的控制器而編寫的,而不僅僅是我們將使用的 STM8S103F3P6 控制器。因此,我們必須在這里和那里進行一些調整以使其工作(稍后我將分享)。但是,我仍然認為值得一試,因為它可以使開發速度非常快,因此,我們將在我們的教程中使用它。
如果您不想使用該庫,則必須直接訪問控制器的寄存器或進行裸機組裝編程。只要您有時間學習和使用它,這兩者都很有趣。我的想法是在 SPL 庫運行良好的地方使用它,然后在需要時在寄存器和匯編級別上工作。讓我們盡量不要重新發明輪子!
如果我不提及 Arduino IDE 支持 STM8S,那么討論軟件選項將永遠不會完整。是的,同樣的 STM8S103F3P6 板可以使用 Sduino從 Arduino IDE 直接編程,這要感謝 Michael Mayer。但是,該項目仍處于開發階段,可能需要一些時間和社區支持 Sduino 才能提供完整的平臺支持。然而,就在玩 Sduino 的幾分鐘內,我開始喜歡它,因此決定另外寫一篇關于如何使用 Arduino 對 STM8S 微控制器進行編程的文章。準備好后,我將在此處鏈接該文章。那篇文章將討論為什么以及為什么不應該使用 Arduino IDE 對您的 STM8S 微控制器進行編程。
下載所需軟件的
現在我們已經決定了我們將用于本教程的軟件,讓我們繼續使用以下鏈接下載它們。所有軟件都可以免費下載和使用,如果您還沒有在 ST 和 Cosmic 上注冊一個免費帳戶,您只需注冊一個免費帳戶即可。
ST 視覺開發 (STVD)
Cosmic C 編譯器
標準外設庫
STM8Cube Mx (可選)
STM8 的 STMStudio (可選)
設置 STVD 和 Cosmic C 編譯器
下載這兩個軟件后,只需按照屏幕上的說明進行安裝即可。我建議將它們保留在默認目錄中以避免以后混淆。STVD IDE 將毫不費力地安裝。對于 Cosmic C 編譯器,您必須在安裝過程中獲得免費的許可證密鑰。您只需提供公司信息和 E-mail ID,如果您是學生,請提及。獲取許可證密鑰的過程是即時和自動的,雖然設置說明說可能需要一兩天,但我一提交就自動在我的電子郵件 ID 上收到了許可證密鑰,只要確保你檢查垃圾郵件。我的確認電子郵件如下所示。
按照電子郵件說明,只需復制 license.lic 文件并粘貼到安裝文件夾中的“license”子文件夾中。對我來說,路徑是 “C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\License”。只需將文件粘貼到如下所示的位置
STM8S103F3P6 標準外設庫
如前所述,ST Microelectronics 提供名為 SPL 的庫,可用于所有 8 位 STM8S/A 微控制器。您可以從 ST Microelectronics 下載原始 SPL 并進行所需的更改,或者下載我的 STM8S103F3P6 SPL 庫并照此使用。我會推薦后者。
ST Microelectronics 的原始 SPL
STM8S103F3P6 聲壓級
當您在那里時,請確保下載 SPL 用戶手冊,這在對控制器進行編程時將非常方便。
編譯第一個程序
現在一切準備就緒,讓我們嘗試編譯我們的第一個程序,以檢查 IDE、編譯器和庫是否都按應有的方式工作。您還可以查看頁面底部的視頻以獲取詳細說明。
首先打開 STVD 并選擇 File -》 WorkSpace,在彈出窗口中選擇“New Workspace”并輸入項目名稱和程序應保存的路徑。我將我的程序命名為 BareMinimum 并將其保存在桌面上的文件夾中。單擊確定,您將獲得如下所示的新建項目對話框。
我再次將項目命名為bareminimum,在工具鏈下,我們必須將工具鏈根指定到安裝STM8 Cosmic編譯器的路徑。默認路徑地址為 “C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8”。之后只需單擊“確定”即可獲得“MCU 選擇”窗口。
搜索 STM8S103F3P 并選擇它并單擊確定。這將在 STVD 上為 STM8S103F3P 打開一個新項目,完成后窗口應如下所示。
右鍵單擊“源文件”并選擇“將文件添加到文件夾”以包含我們 SPL 庫中的所有 c 文件,同樣右鍵單擊包含文件以包含所有頭文件。如果您有任何疑問,可以參考下面的視頻。添加完所有文件后,單擊 Build -》 rebuil d all 然后 Compile 檢查編譯器和 SPL 是否按預期工作。如果一切順利,您應該會看到以下屏幕,其中包含構建結果 0 錯誤和 0 警告。
完成后,現在我們可以確定我們所有的 SPL 庫都在使用 Cosmic 編譯器和 STVD。這是我們將為每個新項目遵循的標準程序。如果需要,您還可以僅包含項目所需的必要頭文件和源文件,以減少構建時間。
使用 ST-Link V2 將代碼從 STVD 上傳到 STM8S 開發板
將 ST-Link V2 與開發板連接,如下圖所示。
連接非常簡單,最好的部分是您不需要外部組件。我的編程硬件設置如下所示,我剛剛使用母頭線進行連接。但是,請注意您的 ST-Link 的引腳排列可能與我的不同,請確保在進行連接之前遵循設備上的引腳排列。
建立連接并將設備連接到您的計算機,驅動程序安裝應自動開始。您可以使用設備管理器來確保您的計算機是否正確發現了 ST-LINK V2。如果這是第一次為電路板供電,您還會注意到電路板上的測試 LED 閃爍。一旦我們在 STVD 上成功編譯了代碼,我們就會在項目文件夾的 debug 目錄下得到一個“S19”擴展文件。我的 S19 文件如下所示。
這個 S19 就像應該上傳到控制器的 Hex 文件。要上傳程序,請打開應該與 STVD 一起安裝的 ST Visual Programmer (STVP)。然后在配置窗口中,如下圖所示選擇,然后單擊確定。
然后單擊 文件-》打開 并導航到我們之前顯示的 S19 文件。然后要刷新設備,請按照 程序 -》 當前 選項卡。如果刷寫成功,您應該會看到以下輸出。
默認情況下,當您購買 STM8S 時,它將有一個閃爍測試 LED 的 blin 程序。現在上傳此空白代碼后,LED 將不再閃爍。
/* MAIN.C 文件
*
* 版權所有 (c) 2002-2005 STMicroelectronics
*/
#包括“STM8s.h”
主要的()
{
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_SLOW);
而(1);
}
評論
查看更多