蓝桥杯嵌入式开发(STM32F1)笔记 01 - 开发板简介

嵌入式硬件(STM32F1)开发环境主要包括软件和硬件开发环境。软件开发环境包括软件开发包(SDK)和集成开发环境(IDE)等,硬件开发环境包括国信长天嵌入式竞赛实训平台和嵌入式资源扩展板等。

硬件资源简介

第十三届蓝桥杯仍实行 F1、G4 开发板混用比赛,我们使用的是国信长天 CT117E V1.1(STM32F103RBT6)开发板。

板载 STM32F103RBT6 主要的资源:

  • 72MHz Cortex-M3 处理器
  • 128KB - Flash
  • 20KB - SRAM
  • 3 个通用定时器(2/3/4)
  • 1 个高级定时器(1)
  • GPIO 外设资源

F1 开发板主要搭载的可供编程的外设资源有:

资源名称 数量 引脚 备注
LCD 显示器 1 块 RS:PB8
CS#:PB9
WR#:PB5
RD#:PB10
低位总线:PC0-PC7
高位总线:PC8-PC15
赛点资源包提供例程
LED 灯 8 个 PC8-PC15 与 LCD 共用引脚
使用锁存器(PD2)控制
独立按键 4 个 B1:PA0
B2:PA8
B3:PB1
B4:PB2
电位器(R37) 1 个 PB0 PB0 默认功能:
ADC12_IN8
TIM3_CH3/TIM8_CH2N
重定义功能:
TM1_CH2N
USART 串口 2 个 串口 1(RS232):PA9、PA10
串口 2(USB):PA2、PA3
使用串口 2(USB CN2):
PA2 (TX AF_PP)
PA3 (RX IN_FLOATING)
定时器 4 个 TIM1-TIM4 TIM1 为高级定时器
TIM2-TIM4 为通用定时器
RTC 实时时钟 1 个 独立定时器
蜂鸣器 1 个 PB4 G4 开发板已移除
SD 卡 1 个 PB10-PB15 SPI 协议,G4 开发板已移除

与 G4 开发板相比,软硬件资源差异主要如下:

开发板 F1 G4
MCU STM32F103 STM32G431
模拟输入 1 路 3 路(1 路数控)
脉冲输入 2 路
串口 2 个(RS232、USB) 1 个(USB)
蜂鸣器 1 个
SD 卡 1 个(SPI)
调试器 Colink(CooCox) CMSIS-DAP
调试接口 JTAG(SW) SWD
SDK Lib3.5/HAL/LL HAL/LL

软件开发包(SDK)

在比赛过程的开发设计中,我们使用的是标准外设库(Standard Peripherals Library)V3.5.0,也就是通常所说的 Lib3.5,标准外设库的结构如下图所示:

主要包括了以下内容:

  • ARM CM3 CMSIS(Cortex Microcontroller Software Interface Standard:Cortex 微控制器软件接口标准)V1.30:core_cm3.h 和 core_cm3.c
  • STM3210x CMSIS V3.5.0:startup_stm32f10x_*.s、stm32f10x.h、system_stm32f10x.h 和 system_stm32f10x.c
  • STM32F10x_StdPeriph_Driver V3.5.0:misc.h、misc.c、stm32f10x_*.h 和 stm32f10x_*.c
  • STM32F10x_StdPeriph_Examples V3.5.0:外设例程
  • STM32F10x_StdPeriph_Template V3.5.0:工程模板
  • STM32_EVAL V4.5.0:评估板支持包

Lib3.5 支持的集成开发环境如下:

  • Keil Microcontroller Development Kit(MDK-ARM)
  • IAR Embedded Workbench for ARM(EWARM)
  • Atollic TrueSTUDIO STM32(TrueSTUDIO)
  • Hitex IDE/Debugger(HiTOP)
  • Raisonance IDE(RIDE)

集成开发环境(IDE)

在比赛过程中,我们选用了支持 Lib3.5 的集成开发环境 Keil MDK-ARM,目前最新的版本为 V5.36.0,如果要使用 V4.x 以上的版本进行开发,为了实现对我们所用的开发板文件支持,需要安装 Cortex-M 传统器件支持包,具体开发环境部署可见蓝桥杯嵌入式开发指南 01 - 开发环境部署

赛点一般是部署好了我们需要用到开发环境,在自己的电脑上进行练习前需要安装好相关的开发环境。

一般来说,我们在比赛过程中不会去新建工程,直接拷贝赛点资源包中提供的液晶显示屏示例程序开始编程。

结语

今年可能是能够使用旧版开发板的最后一年,为照顾新旧开发板同时使用,硬件方面主要着重于两个板子都有的资源,在软件编程上分水岭主要会出现在逻辑编程方面。与新版开发板相比,旧版使用 Lib3.5 库编程的方式与使用 CubeMX 进行引脚定义上需要自行记住绝大部分的初始化语句,容易产生错误,需要特别注意。