一、选型及介绍
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/n/277107.html