您的位置:

STM32F103C8T6最小系统搭建及应用案例

一、选型及介绍

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