一、选型及介绍
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最小系统搭建及应用案例。通过对硬件及软件环境的准备,与开发及调试的实践,对学习者来说具有一定的参考价值。