當前位置:編程學習大全網 - 編程語言 - 基於Keil、STM32,用C++編寫流水燈程序

基於Keil、STM32,用C++編寫流水燈程序

通常來說,在單片機上編程,要麽匯編,要麽C語言,而用C++進行開發的很少,那麽究竟能不能用C++開發單片機呢?答案是肯定可以的,下面講講基於Keil、STM32,用C++編寫流水燈程序的壹些內容。

1、為什麽很少用C++開發單片機

不知道大家對面向過程和面向對象的理解有多少?

C語言面向過程的語言,C++是面向對象的編程語言。結合本文來說,面向過程相比面向對象的編程,代碼量更小,運行效率更高。

所以,C語言相比C++具有更小代碼量、更快的運行速度。

當然,這裏是C相對C++而言。其實,匯編相對C而言,具有更小代碼量和更快的運行速度。可以參看文章:用匯編和C語言寫流水燈程序有什麽不壹樣?

因為單片機的RAM和Flash資源相比較小,運行速度也相對較低,所以,妳會發現:很少有人在單片機上面用C++開發項目。

其實,隨著單片機的存儲資源以及運行速度的增加,目前有些工程師開始用C++開發單片機項目了。

2、準備工作

用C語言開發STM32比較常見了,什麽開發環境安裝、創建工程等這些步驟,本文不講述。

3、使用說明

在Keil MDK環境下,使用的是ARM編譯器(Arm Compiler),很多網上教程使用V6編譯,其實V5和V6版本都是支持C++編程語言的。

在工程中添加C++源代碼(比如:main.cpp)

使用V5和V6,工程配置的選項有些差異:

4、定義LED類

在本文默認大家掌握了用C語言開發STM32流水燈的知識,直接描述C++代碼內容。

本文講述壹個很基礎的例子"LED燈",比如創建壹個main.cpp源代碼文件。

首先,定義壹個LED類:

class LED_Class{

然後定義私有成員(當然,public也可以):

class LED_Class{

再次就是用到的函數:初始化GPIO、打開、關閉LED等。

class LED_Class{

這個代碼是不是很簡單,即使妳不會C++,只要懂C語言,相信都能看懂。

5、流水燈實現(main函數)

用C++的思路和C語言類似,先初始化,然後再實現:

int main(void)

還有壹種初始化:

int main(void)

編譯出來的代碼量相對更大:

然後,如果有開發板,直接下載即可運行LED閃爍的現象。

  • 上一篇:辦公室培訓課程有哪些內容
  • 下一篇:免費好用的殺毒軟件
  • copyright 2024編程學習大全網