1. 編程規范
對于新手來講,編程規范以及代碼架構也非常重要,有一個良好的編程規范和代碼架構,可以提高開發效率,方便問題排查以及后續的程序維護。這里介紹的編程規范很簡單,要求不嚴格。主要有以下幾點
- ? 變量定義 變量定義時最好是能夠體現該變量所屬的外設模塊,該變量是否為全局變量,靜態變量或者指針變量。變量首字母小寫,后面的單詞首字母大寫。舉例如下
// 以ADC模塊為例,需要定義一個存儲AD值的變量,舉例說明變量命名方式
// 局部變量
u32 adValue = 0;
// 全局變量
u32 gAdcAdValue = 0; // 加一個g表示是全局變量
// 全局靜態變量
static u32 gsAdcAdValue = 0; // 加一個s表示靜態變量
// 指針變量
u32 *gpAdcAdValue = (u32*)0x2000800; // 加一個p表示為指針變量
- ? 注釋 函數注釋舉例如下
/*
*==============================================================================
*函數名稱:
*函數功能:
*輸入參數:
*返回值:無
*==============================================================================
*/
對于程序語句注釋,如果過長可以在程序上方加注釋,如果不是很長可以在程序語句后面空三格輸入注釋。
- ? 函數命名 函數命名要體現函數所屬的層級以及函數的功能,關于層級會在代碼架構的部分詳細說明,這里只說一下函數命名方式。
// 這里以ADC模塊的讀取AD值函數為例,說明函數命名方式
void Med_Adc_ReadAdValue (void)
{
// 函數內容
}
這里med指示該函數位于功能層,屬于ADC模塊,作用是讀取AD值。
- ? if,while等語句的使用 使用if或者while等語句時,需要在括號前面加一個空格,如下
if (gAdcAdValue == 0)
{
// 程序語句
}
- ? 四則運算 四則運算符號前后需要加空格,包括等于號等符號。如下
c = a * b;
2. 程序架構
該程序架構是本人在工作期間學習的,個人感覺還是有助于提高開發效率,方便后續維護的。主要思想是將一個模塊的程序分成三部分,每一部分是一個新建的文件夾,下面都是其他模塊相同層級的文件。
? Drv 驅動層 該層主要是寫一些模塊的初始化程序,例如GPIO的初始化,ADC的初始化等。
? Med 功能層 該層主要是完成一些功能性的操作,比如讀取AD值,點亮LED等。Med層的函數可以包含Drv層的函數。
? App 業務層 該層主要是完成一些業務,比如在點亮LED的基礎上實現流水燈,比如顯示電壓值等。
四、STM32F103ZET6簡介
STM32F103ZET6是由意法半導體(ST)生產的一款單片機,32指32位。STM32也可以成為32位微處理器。STM32F103ZET6的主時鐘頻率為72MHz,512KB的FLASH,64KB的SRAM。常用到的有GPIO,中斷,ADC,TMR,UART,DMA等。
五、程序模板
在使用Keil5編程時,針對一個外設需要新建對應的.c和.h文件。這里以LED模塊為例,簡單介紹一下本人的常用模板
.c文件
#include "LED.h" // LED頭文件
需要注意的是一定要空出來一格,否則編譯會報警告。
文件最后未空一行的警告
.h文件
#ifndef _LED_H
#define _LED_H
#include "sys.h" // STM32庫文件
#endif
.h文件最后也要空出一行,否則也會有警告。
新建完之后需要將這兩個文件添加到工程中。
對于.c文件,右鍵工程文件夾,選擇“Manage Project Items”打開。
點擊“Add Files”將新建的.c文件加入到對應的文件夾下。
添加.c文件
對于.h文件,點擊魔術棒,選擇“C/C++”,點擊三個小點選擇對應文件夾即可。
添加.h文件
六、ST-Link調試
在開發過程中學會使用Debug調試,能夠幫助我們更快地定位問題。這里簡單介紹一下利用ST-Link和普中核心板Debug調試方法。
6.1 硬件連接
首先將ST-Link與核心板連接起來,ST-Link的引腳如下
ST-Link引腳
核心板上并沒有給ST-Link預留單獨的接口,而是跟JTAG一起。
其原理圖和硬件圖如下
JTAG原理圖
JTAG硬件圖
由原理圖可知,ST-Link的“SWCLK”連接核心板的“JTCK”,“SWDIO”連接核心板的“JTMS”,“RST”接“RESET”。
VCC不要接,接好ST-Link后再單獨給核心板供電。
6.2 Keil配置
硬件連接好后開始配置Keil5,關于ST-Link驅動的安裝這里就不再做介紹了。
? 首先確定ST-Link驅動是否正常
確認ST-Link驅動是否安裝正常? 配置Debug 點擊魔術棒,選擇Debug,下圖處選擇“ST-Link Debugger”。
Debug配置
然后再點擊“Settings”,在“SWIO”右側不顯示“no target connected”就說明ST-Link連接正常。點擊“Flash Download”
Flash Download
按照圖示配置,“Programming Algorithm”只要選擇符合芯片型號的即可,需要注意的是,只能保留一個。
Flash Download配置
按照下圖配置“Utilities”。
配置Utilities
至此,Keil5關于ST-Link的內容配置完成,如果小伙伴遇到其他問題,可以多去看一些大佬們的博客。6.3 下載調試
配置完上面的內容后就可以使用ST-Link進行下載調試了。下載的話比較簡單,編譯完成后直接點擊下圖標注的圖標,等到下載完成即可。
下載程序
調試時點擊下圖所示按鈕,進入Debug調試。
調試按鈕
下面簡單介紹一下調試窗口中各個按鈕的作用,其他更加詳細的介紹需要小伙伴自行搜索,這里參考了這篇大佬的文章KEIL5中Debug調試。
調試窗口按鈕含義
第一部分從左到右
- ? 復位
- ? 全速運行
- ? 停止
- ? 每點一次運行一行,遇到函數體會進入
- ? 每點一次運行一行,遇到函數體不進入,直接執行完到下一行
- ? 快速執行當前函數剩余語句,然后跳出該函數體,準備執行下一條
- ? 直接運行到光標處
第二部分從左到右
- ? 設置當前光標處為斷點
- ? 失能當前光標處斷點
- ? 失能全部斷點
- ? 刪除全部斷點
打斷點的方法比較簡單,直接在想要打斷點的一行左側點擊一下,出現一個紅點就表示已經添加了斷點。斷點的作用是能夠讓程序運行到斷點處停止,有助于我們分析函數運行方式以及變量的變化。
斷點示意圖
調試時可以查看某一個變量的值。選中想要查看的變量,右鍵
查看變量值
此時就會出現一個窗口,能夠查看該變量的值。
查看變量值
-
微處理器
+關注
關注
11文章
2372瀏覽量
83898 -
GPIO
+關注
關注
16文章
1276瀏覽量
53637 -
LED模塊
+關注
關注
0文章
27瀏覽量
13435 -
ADC模塊
+關注
關注
1文章
19瀏覽量
11210 -
STM32F103ZET6
+關注
關注
9文章
67瀏覽量
21629
發布評論請先 登錄
筆記本電腦選購與使用常識(高手速成)
STM32各模塊學習筆記
STM32學習筆記(1)——LED和蜂鳴器

(STM32筆記)一、STM32特點

stm32學習筆記1

STM32速成筆記(6)—定時器

評論