Hello, I’m Shendi
最近開整單片機(jī),這里記錄一下
我目前配置,最小系統(tǒng)板 STM32F103C6T6,ST-LINK V2
最小系統(tǒng)板,通電后PWR燈會亮,ST-LINK插上電腦后也會亮
PDD上買的,沒有焊接的(就是有個洞被焊起來了),加起來不超過30塊
ps:
ST-LINK是燒錄器,用于將編寫好的程序燒錄進(jìn)單片機(jī)
Keil 是編寫程序的 IDE
ST-LINK與最小系統(tǒng)板連接
實物圖
其中ST-LINK有八個引腳,上面都標(biāo)出了對應(yīng)的作用了,一般用3.3V就可以了,SWDIO與SWIO相連,其余連接一致即可(四根線都插上)
接完后,這時將ST-LINK插入電腦USB口,即可看到單片機(jī)與ST-LINK亮起
ST-LINK驅(qū)動安裝
在安裝完 keil5 后,keil的安裝目錄下有 ARM/STLink/USBDriver
雙擊其中 dpinst_adm64.exe 即可安裝驅(qū)動
32位則點擊 dpinst_x86.exe
裝完后,插上ST-LINK,即可在設(shè)備管理器里看到有 STM32
Keilv5 新建項目
New uVision Project,輸入名稱,保存,會彈出 Select Device for Target… 窗口,看窗口左下方有沒有 STMicroelectronics,或者在 Search中輸入單片機(jī)型號,例如我的 STM32F103C6T6(只有STM32F103C6)
如果有則直接選擇,沒有就需要手動下載芯片包了
下載芯片包
進(jìn)入 https://www.keil.com/dd2/pack/ 下載芯片包,往下滑,找到 Keil,然后找到其中的帶STM32的
例如我的 STM32F103,找到了 STM32F1,下載即可,網(wǎng)速慢可以科學(xué)上網(wǎng)下載
根據(jù)前綴來下載對應(yīng)的芯片包 STM32F0 則下載 STM32F0 的
下載完后是一個后綴為pack的文件,將其復(fù)制到 keil 的 pack/.Download 文件夾
打開 keil,點擊 Pack Installer
點擊 file - import 導(dǎo)入下載的芯片包,看右下角,等待完成即可
完成后再新建項目就有 STM32 對應(yīng)的芯片包可以選擇了,選擇自己類型的,下一步,OK,創(chuàng)建完成
我的是 STM32103C6T6 就選擇了STM32103C6
配置項目
點擊option for target,配置
彈出的窗口點擊 debug,右邊的 use 選擇 ST-LINK Debugger,有可能彈出更新 ST-LINK 窗口,我直接點了更新了
在接好ST-LINK+單片機(jī)后,電腦插上ST-LINK,點擊Settings
這個時候可以在右邊看到 id
如果顯示 No Target Connect 則檢查線是否接對了,我剛開始沒接對就出現(xiàn)了這樣的問題
如果確認(rèn)線接對了,可以嘗試一直按下單片機(jī)上的 Reset 按鈕,然后再點擊 Setting 看看是否有連接
點擊 Output,勾選 Create HEX File,這樣就可以生成 hex 文件
點擊 Manager Run-time
勾選 CMSIS 的 CORE 和 Device 的 StartUp
其余根據(jù)需要勾選
ST-LINK燒寫
ST-LINK上的LED燈有幾種顏色,分別代表
- LED 閃爍紅色:STLink 已經(jīng)連接至計算機(jī)。
- LED 保持紅色:計算機(jī)已經(jīng)成功與 STLink 建立通信連接。
- LED 交替閃爍紅色和綠色/藍(lán)色:數(shù)據(jù)正在傳輸。
- LED 保持綠色/藍(lán)色:最后一次通信是成功的。
- LED 為橘黃色:最后一次通信失敗。
新建一個文件為 Test.c,代碼如下
當(dāng)ST-LINK連接沒問題時,我們可以先 build,然后再點 download,發(fā)現(xiàn)ST-LINK紅燈和藍(lán)燈閃爍了,看keil內(nèi)日志,程序下載完成
點燈
我的板子上大概有兩個 LED 燈,一個 PWR(電源燈,接通就亮紅燈),電源對面的 PC13(板子上有標(biāo)記)
網(wǎng)上找了個簡單的方法,直接修改地址來點燈
LED正極已經(jīng)接3.3V,因此只需要我們控制PC13輸出0V(低電平),就可以點亮LED
代碼如下
int main()
{
*(unsigned int *)0x40021018 |=(1<<4);
*(unsigned int *)0x40011004 &=~(1111<<(4*5));
*(unsigned int *)0x40011004 |=(1<<(4*5));
*(unsigned int *)0x4001100C &=~(1<<13);
}
將這段代碼燒寫進(jìn)去,然后按下單片機(jī)上的Reset鍵(重啟),就會發(fā)現(xiàn)燈已經(jīng)亮了,我的是綠色的燈
點燈方法只適用于 STM32F103C6T6或 STM32F103C8T6,因為是直接通過寄存器點亮,其余型號單片機(jī)可能內(nèi)存地址不一樣,可自行百度文章來源:http://www.zghlxwxcb.cn/news/detail-404086.html
如果不同型號點燈可參考下一篇,通過GPIO點燈
下一篇:呼吸燈的實現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-404086.html
到了這里,關(guān)于最小系統(tǒng)板 STM32入門,點亮 LED 燈(STM32F103C6T6)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!