STM32F103C8T6基礎開發(fā)教程目錄
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—開發(fā)環(huán)境配置
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—Keil添加注釋的快捷鍵
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—點亮第一顆LED燈
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—LED燈交替閃爍
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—LED燈呼吸閃爍
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—等級劃分LED燈亮度
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—按鍵點亮LED燈
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—定時器的使用
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—串口發(fā)送與接收
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—點亮OLED屏幕
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—傳感器使用
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—讀寫內部FALSH
- STM32F103C8T6基礎開發(fā)教程(HAL庫)—LORA點對點通信
STM32F103C8T6基礎開發(fā)教程(HAL庫)—點亮第一顆LED燈
本節(jié)內容
- 點亮第一顆LED燈
- 編譯并燒錄HEX文件
STM32F103C8T6開發(fā)板筆者選用筆者團體自行設計的最小系統(tǒng)開發(fā)板,以后的章節(jié)教程均采用TWRS103B-V1.3作為教學開發(fā)板,為了大家更好的快速入門,建議購買支持一下筆者,當然,如果自已手上也有其他STM32F103C68T也可以參考筆者教程進行學習,功能都是一樣的!
TWRS103B-V1.3最小系統(tǒng)開發(fā)板與傳統(tǒng)STM32F103C8T6最小系統(tǒng)開發(fā)板區(qū)別
TWRSTM32F103C8T6最小系統(tǒng)開發(fā)板 | 傳統(tǒng)STM32C8T6最小系統(tǒng)開發(fā)板 |
---|---|
支持USB下載 | 不支持USB下載,需要下載器 |
PB5自帶WS2812可編程RGB彩燈 | PC13自帶可編程普通LED燈 |
引出PD0、PD1 | 沒有引出PD0、PD1 |
![]() |
![]() |
本節(jié)內容要用到的材料
歡迎進入蒙學長小鋪進行采購:淘寶店傳送門
本文末尾處提供本節(jié)源碼下載(免費下載)
1.點亮第一顆LED燈
1)STM32CubeMX配置
上節(jié)已敘述了CubeMX生成第一個工程,本節(jié)將不再過多的贅述,配置LED燈輸出引腳即可。
(1)打開STM32CubeMX,單擊ACCESS TO MCU SELECTOR
(2)CubeMX下完補丁包彈出芯片選擇界面,在Commercial搜索框輸入F103C8T6右下方會自動出現(xiàn)STM32F103C8T6,雙擊即可
(3)進入配置界面后單擊System Core(系統(tǒng)的核心) → SYS → Debug → Serial Wire(這個是調試模式,如果不選Serial Wire則可能會使得無法使用Stlink或Jlink下載,如果你是用串口線下載,不調試,不選也沒關系),這時PA13與PA14被用來做調試的LCK和DIO口,如果引腳不夠用的情況可以不配置為LCK和DIO口,可以把PA13、PA14當做普通IO口使用(新手不建議)。
(4)單擊System Core(系統(tǒng)的核心) → RCC(配置晶振) → High speed Clock(HSE)(高速晶振)→ Crystal/Ceramic Resonator(外部晶振,8M)(如果這里選Disable則無法使用外部高速晶振),這時PD0與PD1被用來做晶振的接口,如果不配置則可以把PD0、PD1當做普通IO口使用(新手建議跟著筆者還是進行配置)。
(5)依次單擊Pinout & Configuration → System Core → GPIO →右邊的PB9(因為筆者LEDD燈接的PB9所以這里選PB9,讀者按照自己的要求自行設定) → GPIO_Output
(6)設置好之后PB9變成綠色,跟著筆者繼續(xù)配置
(7)單擊Clock Configuration在這里輸入72,按下回車 → OK,自動配置時鐘頻率為72Mhz
注:如果彈出這個窗口,不能使用72Mhz只能設置為64Mhz,那就是在RCC沒有配置外部高速晶振,回去配置即可,如果還不行,那就是芯片選錯了。
(8)單擊Project Manager → Project ,配置準備要生成的工程
(9)單擊Code Generator 單選Copy only the nacassary library files,勾選Generate peripheral…peripheral,上述的配置都設置好后就可以單擊右上角的GENERATE CODE生成工程了。
(10)打開工程
1)Keli5編寫代碼
(1)打開工程后,進入Keli5軟件,依次打開工程結構樹,雙擊main.c開始寫源碼
切忌:一定要在BEGIN END里寫代碼,不然后面STM32CubeMX重新配置生成代碼會刪除BEGIN END外面的代碼
(2)找到Drivers文件夾里的stm32f1xx_hal_gpio.c(雙擊打開),找到第465行的HAL_GPIO_WritrPin函數(shù),復制其函數(shù)名,并在main方法里的wihile(1)調用
(3)把HAL_GPIO_WritrPin函數(shù)粘貼在,main方法里的wihile(1)
(4)左上角編譯,0錯誤,0警告
2.程序燒錄
1)方式一(ST-LINK/V2)
(1)ST-LINK/V2
TWRSTM32F103C8T6最小系統(tǒng)開發(fā)板 | |
---|---|
![]() ![]() |
|
傳統(tǒng)STM32F103C8T6最小系統(tǒng)開發(fā)板 | |
![]() ![]() |
由于筆者不太理解傳統(tǒng)STM32F103最小系統(tǒng)板為什么要把GND放在上面,交叉接線,每次接ST-LINK/V2的線都很繁瑣,所以筆者團隊按照ST-LINK/V2順序來設計,大大提高開發(fā)效率。
(2)安裝仿真器驅動
①本文末尾處下載并 解壓STM32仿真器驅動壓縮包
②右鍵此電腦→管理
③設備管理器→STLink→更新驅動程序
④瀏覽
⑤找到剛剛解壓的ST-LINK驅動
⑥下一步
⑦完成
⑧沒有感嘆號了
(3)編譯燒錄程序
①F7編譯
0錯誤,0警告
②單擊魔法棒
③Debug→ST-Link Debugger→OK
④F8燒錄程序
⑤正在燒錄
④每次下載完之后按一次下開發(fā)板上的RES(復位按鍵)才能看到效果
實驗效果
LED亮起,實驗完成
- 點亮第一顆LED燈
- 編譯并燒錄HEX文件
2)方式二(串口下載)
(1)插上數(shù)據(jù)線
(2)下載并解壓串口驅動
(3)打開安裝串口驅動
(4)安裝串口驅動
(5)右鍵此電腦 → 管理 →設備管理器 → 端口(COM和LTP)識別到串口,證明已經(jīng)裝好了,并記住該串口號
(6)下載并解壓FlyMcu
(7)雙擊打開FlyMcu.exe
(8)雙擊打開FlyMcu.exe → 搜索串口 → 把bps改為460800比特率
(9)找到之前STM32CubeMX配置時的路徑,Demo → MDK-ARM → Demo → 打開Demo.hex
(10)單擊開始變成,這時右邊顯示開始連接…
(11)按下開發(fā)板上的RES和DOW
(12)程序下載,等待完成即可
實驗效果
LED亮起,實驗完成文章來源:http://www.zghlxwxcb.cn/news/detail-801491.html
- 點亮第一顆LED燈
- 編譯并燒錄HEX文件
本節(jié)主要代碼
/**
* Main application entry point.
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
//SET:置為高電平 RESET:置為低電平
//由于筆者是用LED的負極接到單片機,
//所以這里要用高電平才能點亮
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
本節(jié)需掌握函數(shù)
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET); //點亮LED
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET); //熄滅LED
本節(jié)資源
百度網(wǎng)盤: 本節(jié)驅動及小工具
提取碼:RSXC
百度網(wǎng)盤: 本節(jié)源碼
提取碼:RSXC文章來源地址http://www.zghlxwxcb.cn/news/detail-801491.html
到了這里,關于STM32F103C8T6基礎開發(fā)教程(HAL庫)—點亮第一顆LED燈的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!