Ardunio和HAL庫函式程式設計

qq_48171332發表於2020-12-22

軟體安裝以及配裝

百度雲連結
提取碼:q251
開啟arduino-1.8.12-windows.exe進行安裝
在這裡插入圖片描述
將檔案中的Arduino_STM32整個資料夾拷貝到Arduino IDE安裝目錄下的hardware下
開啟Arduino,點選工具-開發板,檢查是否成功
在這裡插入圖片描述
可以看到下一級選單目錄中有STM32F1的板子

點選工具-開發板-開發板管理器搜尋ARM安裝編譯支援檔案
在這裡插入圖片描述
開啟flash_loader_demo_v2.8.0.exe,插入開發板
在這裡插入圖片描述
按下圖進行選擇除錯
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
安裝完成

燒錄測試

在這裡插入圖片描述
程式碼:

int flag=1;   
char Stop[]="stop\n";
void setup() {
//初始化
pinMode(PB0, OUTPUT);//PB0為綠色,PB1為藍色,PB5為紅色,可根據需要改動
Serial.begin(115200);
}
void loop() {
int i=0,flag_s=0;
char inByte[50];
digitalWrite(PB0, HIGH); //小燈亮
delay(500); // 延遲
digitalWrite(PB0, LOW); //小燈滅
delay(500); // 延遲
while (Serial.available()> 0)     //當傳送緩衝區有資料時
{
        inByte[i] = Serial.read();    //從串列埠的緩衝區取出並讀取一個Byte的資料
        delay(10); 
        i++ ;                              
}
if(Stop[i]=inByte[i])
{
  if(Stop[i-1]==inByte[i-1]&&Stop[i-2]==inByte[i-2]&&Stop[i-3]==inByte[i-3])
  {
  flag=0;
  Serial.println("收到!");
  }//當收到stop命令時停止並回復收到
}
if(flag==1)
{  
Serial.println("Hello World!");//向串列埠傳送資料
delay(100); // 延遲
}
}




在這裡插入圖片描述

編譯、燒錄在這裡插入圖片描述

標準庫函式與HAL庫函式的stm32程式設計方式差異

標準外設庫(Standard Peripherals Library)是對STM32晶片的一個完整的封裝,包括所有標準器件外設的器件驅動器。標準庫都是基於暫存器的操作。HAL庫,Hardware Abstraction Layer的縮寫,即硬體抽象層,HAL庫工程一般使用Cube軟體來生成工程。HAL庫是ST公司為STM32的MCU最新推出的抽象層嵌入式軟體,更方便的實現跨STM32產品的最大可移植性。相比標準外設庫,STM32Cube HAL庫表現出更高的抽象整合水平,HAL API集中關注各外設的公共函式功能。HAL庫優點在於:便於定義一套通用的使用者友好的API函式介面,從而可以輕鬆實現從一個STM32產品移植到另一個不同的STM32系列產品。和標準庫對比起來,STM32的HAL庫更加的抽象,ST最終的目的是要實現在STM32系列MCU之間無縫移植,甚至在其他MCU也能實現快速移植。

stduino IDE的使用體驗

作為一個國產MCU整合平臺, stduino IDE使用起來感覺更加方便,更加符合國人操作習慣,同時功能很強大,老師提出這樣一個問題:已經有了Keil、Ardunio,覺得是否還有必要“再造車輪”,我認為“再造車輪”是有必要的,任何平臺都有自己的適用人群和優勢弊端,技術的革新意味著生產力的進步,這是非常有必要的

相關文章