1. 程式人生 > >使用C++封裝庫在MDK上建STM32開發工程

使用C++封裝庫在MDK上建STM32開發工程

用C++進行嵌入式程式開發,甚至是裸系統程式。開發起來比C語言更方便架構搭建與程式管理。

  1. 簡單的一個例子使用USART
#include "USART.h"
USART com(1,115200);
void main()
{
    com<<"test string\r\n";
    while(1)
    {

    }
}
  1. 使用片外資源的一個例子
#include "USART.h"
#include "DPPrint.h"
int main(void)
{
    USART com(USART1, 115200);
    DPPrint DP(com);
    DP.InitializePrint();
    DP.PrintPageStart(0
,0,384,640,0); DP.rectangleDraw(0,0,384,576,5,1); while(1) { } }
extern "C"
{
    void USART1_IRQHandler(void)    //----USART1 IRQ----//
    {
    #ifdef USE_GPS
        if(pGPS1){
            pGPS1->GPS_IRQHandler();
            return ;
        }
    #endif
    #ifdef USE_USART1
        pCOM1->IRQ();
    #endif
#ifdef USE_USART1_DMA pCOM1->IRQ(); #endif } }
  • 首先宣告,這個main()所在的檔案必須是以.cpp檔案,不然編譯當成C語言進行編譯。C++可以呼叫C,C不能呼叫C++,這點要記住。
  • extern “C” { } 用於告訴編譯器,大括號以內的東西以C的方式進行編譯。因為原來.C的標頭檔案被.CPP檔案包含了,那麼編譯器便按C++的方式進行編譯,導致與原來.C檔案中定義的不一致,編譯報錯。

相關推薦

使用C++封裝MDKSTM32開發工程

用C++進行嵌入式程式開發,甚至是裸系統程式。開發起來比C語言更方便架構搭建與程式管理。 簡單的一個例子使用USART #include "USART.h" USART com(1,11

linux搭建stm32開發環境 vscode+gcc+stm32cubeMX 和 vscode+platformIO

一、軟體清單:VSCode:應用商店安裝 或sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo

stm32開發之使用Keil MDK以及標準外設建立STM32工程

通過上一節對標準外設庫的介紹,想必各位讀者對標準外設庫已經有了基本的認識,然而由於標準外設庫中檔案眾多,很多初學者在開始很長一段時間內甚至都無法完全自己建立一個工程,很多人只是依賴標準外設庫或給定的工程

stm32 開發環境MDK+檔案配置

stm32 是一款arm cortex-m3 架構的晶片 結合庫函式使用 可以更方便的實現各種功能 尤其是結合各種匯流排開發應用時 因為庫函式已經封裝很多匯流排的處理方法和驅動 直接呼叫對應庫函式 就可以操作各個匯流排 相比於 直接操作暫存器來說 操作I2C SPI CAN

站在巨人的肩膀C++開源大全

windows應用 pcr ram perl t對象 rest 容器 企業應用 聲音 程序員要站在巨人的肩膀上,C++擁有豐富的開源庫,這裏包括:標準庫、Web應用框架、人工智能、數據庫、圖片處理、機器學習、日誌、代碼分析等。 標準庫 C++ Standard

STM32開發環境--使用MDK建立一個工程

roc 並保存 用戶 all jlink 復制 一個 tty get 開發環境的搭建: MDK下載 首先應該下載到MDK官網:http://www.keil.com/arm/mdk.asp 下載最新版的MDK安裝包,進入MDK官網,點擊download按鈕 跳轉到下載界面

c++動態封裝及調用(1、動態介紹)

oca 新版本 指令 二進制 運行時 失去 理論 load 程序 1、一個程序從源文件編譯生成可執行文件的步驟: 預編譯 --> 編譯 --> 匯編 --> 鏈接 (1)預編譯,即預處理,主要處理在源代碼文件中以“#”開始的預編譯指令,如宏展開、處理條

coding雲(git)遠程創版本傳文件

mit 項目 創建項目 com 本地 git pull .org 目錄 org 1、創建項目不講,註意勾選 README選項 2、本地需要首先安裝 windows 的git庫,https://gitforwindows.org/ 3、進入www目錄下,直接將coding

stm32開發生成的方法

option 選擇 函數 情況 如果 接口 關心 nbsp 協同工作 在一個項目裏面可能有對單片機很熟悉的工程師,懂硬件和軟件,也有只寫軟件的工程師,那麽怎麽才能進行協同工作呢,我想了一個辦法就是懂底層的工程師開發驅動,然後留出接口給其他的工程師來調用,這樣其

c++ 封裝線程 0

read public pri -c class pan lar bool __file__ 1.互斥鎖簡介 互斥鎖主要用於互斥,互斥是一種競爭關系,用來保護臨界資源一次只被一個線程訪問。 POSIX Pthread提供下面函數用來操作互斥鎖。 int pthread_m

c++ 封裝線程 1

mes times copy 實現 store oid att ptr amp 1.Pthread條件變量簡介 條件變量也是線程間同步一個重要的內容,如果說互斥是一個種競爭關系,那麽條件變量用於協調線程之間的關系,是一種合作關系。 條件變量的應用很多,例如:Blocking

linux靜態的創和使用

ont ret \n i++ 宋體 fin 命令 argc 特點 靜態庫的概念:   我們知道程序編譯一般需經預處理、編譯、匯編和鏈接幾個步驟。在我們的應用中,有一些公共代碼是需要反復使用,就把這些代碼編譯為"庫"文件;在鏈接步驟中,連接器將從庫文件取得所需的代碼,復制到生

【python安裝】Windows安裝和創python開發環境

path環境變量 -s cme iat img mba 增加 應用 jni 1. 在 windows10 上安裝python開發環境 Linux和Mac OS都自帶python環境,但是Windows沒有,需要自行安裝。 第1步:訪問 python官網,下載Windows

UI標籤專題四 JEECG智慧開發平臺 Upload 傳標籤

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

windows 下C++動態封裝以及呼叫

1、一個程式從原始檔編譯生成可執行檔案的步驟:預編譯 -->  編譯 -->  彙編 --> 連結(1)預編譯,即預處理,主要處理在原始碼檔案中以“#”開始的預編譯指令,如巨集展開、處理條件編譯指令、處理#include指令等。(2)編譯過程就是把預處理完的檔案進行一系列

windows 下C++動態封裝以及調用

文件鏈接 系列 語義分析 ++ 動態鏈接 中大 動態 turn 應用 1、一個程序從源文件編譯生成可執行文件的步驟:預編譯 --> 編譯 --> 匯編 --> 鏈接(1)預編譯,即預處理,主要處理在源代碼文件中以“#”開始的預編譯指令,如宏展開、處理條

C# 一個高效能非同步socket封裝的實現思路

前言 socket是軟體之間通訊最常用的一種方式。c#實現socket通訊有很多中方法,其中效率最高就是非同步通訊。 非同步通訊實際是利用windows完成埠(IOCP)來處理的,關於完成埠實現原理,大家可以參考網上文章。 我這裡想強調的是採用完成埠機制的非同步通訊是w

Spring Boot 實踐 第六章 Spring data JAP在實際開發中的封裝和應用()

上一章簡單介紹了一下Spring boot和Spring Data JPA的整合和簡單使用.  但是在實際開發過程中, 我們發現Spring Data JPA提供的介面太簡單了,這樣就導致需要編寫大量的重複程式碼. 實際上Spring Data JPA提供了很多種擴充套件方

安利個人開發維護的一個C++模板(沒有三方依賴, 純標頭檔案) oyoungs/dispatch

專案倉庫地址 C++模板庫oyoungs/dispatch介紹 這是個人開發維護的一個工具性質的純標頭檔案的C++庫 內容包括 dispatch.hpp 同步/非同步排程任務佇列, async

自己開發簡單web伺服器一(C++開源websocketpp實現)

簡要 Web伺服器主要處理的是HTTP請求(這裡忽略HTTPS),HTTP協議建立在TCP上。如果自己實現,無非就是網路程式設計(socket接受、傳送),資料解析(HTTP欄位解析),返回HTTP協議字串給客戶端等。說起來簡單,要做到跨平臺和高效,不得不介紹幾個有名的開源