一、選型及介紹
1.選型
STM32F103C8T6是家族系列中的一員,是帶有ARM® Cortex®-M3內核的32位MCU。它是一款性價比很高的MCU,像單片機初學者或者MCU教學實驗等各方面語言,都是不錯的選擇。
2.介紹
通過在正面放大鏡查看,可以看出主控芯片上印有:
STM32F103C8T6
GD32
339B
CCC 1942
其中,STM32F103C8T6是芯片的型號;GD32是粵東南科技生產商;339B是芯片版本號;CCC 1942則是芯片生產批次號。
二、硬件及軟件環境準備
1.硬件環境準備
STM32F103C8T6最小系統的硬件組成及連接方式如下:
_________________ 紅板_____________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | |_______________________綠板_________________|
2.軟件環境準備
(1)使用事先下載的Keil MDK軟件。
(2)使用「TeraTerm」串口調試助手,打開後設置波特率為:115200bit/s,8bit,no parity bit, 1stop bit,baudrate。
三、開發與調試
1.開發
按照最小系統原理圖接線之後,通過USB線連接開發板與PC,正常情況下,PC會提示找到新硬件。
打開Keil軟件,新建立一個工程,選擇STM32F103C8T6芯片及對應的底層文件,通過編寫代碼的方式,可以實現各種不同功能。
2.調試
在Keil軟件上完成代碼的編寫之後,可通過把代碼下載到單片機,通過串口與PC進行通信,進而進行調試。
連接好串口調試助手之後,上電,即可看到電腦端通過串口打印出一堆有意義的字符串,這意味着單片機可以正常啟動並運行指定程序。
其中,串口調試可以通過Keil軟件調試功能,或者自己利用USART進行二次開發。
四、案例分析
1.案例:LED閃爍
(1)硬件連接方式:
將LED負極連接至開發板PB2管腳,正極連接至板載5V。
(2)代碼實現:
/** * @brief Main program * @param None * @retval None */ int main(void) { // 第1步:啟動系統時鐘 SystemInit(); // 第2步:初始化外設GPIO LED_GPIO_Config(); // 第3步:得到要設置GPIO的端口及引腳 LED_Pin = GPIO_Pin_2; LED_GPIO = GPIOB; while (1) { Delay(500); GPIO_SetBits(LED_GPIO, LED_Pin); Delay(500); GPIO_ResetBits(LED_GPIO, LED_Pin); } }
2.案例:按鍵實現LED開關
(1)硬件連接方式:
SWDIO連接PB14管腳,VCC連接板載5V,GND接GND,將按鍵負極連接至開發板GND管腳,正極連接至PB6管腳。
(2)代碼實現:
/** * @brief Main program * @param None * @retval None */ int main(void) { // 第1步:啟動系統時鐘 SystemInit(); // 第2步:初始化外設GPIO LED_GPIO_Config(); KEY_GPIO_Config(); // 第3步:得到要設置GPIO的端口及引腳 LED_Pin = GPIO_Pin_2; LED_GPIO = GPIOB; while (1) { if(KEY_UP == 0) { Delay(10);//按鍵防抖 if(KEY_UP == 0) { while(KEY_UP == 0); LED_State = !LED_State; if(LED_State) GPIO_SetBits(LED_GPIO, LED_Pin); else GPIO_ResetBits(LED_GPIO, LED_Pin); } } } }
五、總結
本文主要介紹了STM32F103C8T6最小系統搭建及應用案例。通過對硬件及軟件環境的準備,與開發及調試的實踐,對學習者來說具有一定的參考價值。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/277107.html