Bootstrap

蓝桥杯嵌入式学习(一)

一、编写环境

STM32开发的三种方式:

1、直接操作寄存器

大多数同学都是从51单片机学习过来的,其中使用了很多寄存器操作,但32和51不同,32使用的寄存器数量比51多了数十倍,如果在使用32过程中直接对寄存器操作就有点太过于繁琐不便了。但对寄存器的操作同样也是其他库的原理,这是脱不开的。

2、标准库

ST32系列拥有非常多的寄存器,这一定程度

导致了开发困难,为此ST公司就为芯片相同系列都编写了一份库文件,也就是工程文件里STM32F1x…之类的(其中x是可变的比如STM32F103C8T6和STM32F103ZET6都可以共用这个头文件)。在这些.c或.h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPO口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。

3、HAL库

HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。

ST推出HAL库最终目的就是缩短产品开发周期,降低企业的研发成本

HAL库优点:

1、简化开发流程 

开发者不需要深入了解硬件底层细节,只需要调用HAL库提供的API函数就可实现底层硬件控制

2、提高代码复用性

由于HAL库提供了标准化的接口,可以方便地在不同的STM32系列芯片之间共享代码。

3、增强可移植性

由于HAL库是与设备无关的,开发人员可以将代码移植到不同的芯片平台上,而不需要重新编写底层硬件控制代码。

提供常用驱动程序和功能库:HAL库提供了一些常用的驱动程序和功能库,比如I2C、SPI、USART等,这些都可以大大减少开发时间和代码量。

HAL库优点:

1、增加代码复杂度

由于HAL库是一个大型的库,需要包含大量的代码,因此在使用时需要将库文件加入到工程中,这会增加代码的复杂度。

2、系统资源占用

由于HAL库是一个底层库,会占用一定的系统资源,因此在对系统资源要求较高的应用场景中,可能需要使用更为轻量级的库。

蓝桥杯嵌入式开发板

软件有STM32CubeMX、Keil-MDK以及使用Hal库编写

二、开发板介绍

1、外观

开发板(带有屏幕)
嵌入式开发板(去除屏幕)

 2、开发板资源

CT117E-M4 嵌入式竞赛训练板由以下功能模块组成:

● 处理器:STM32G431RBT6

● 4 个用户按键

● 8 个用户 LED

● 2.4 寸 TFT-LCD

● 1 个 RS232 串口(使用 UART-USB 转换)

● 1 个 EEPROM 芯片 24C02

● 1 个数字电位器芯片 MCP4017

● 2 个可调模拟输入

● 2 个可调脉冲输入

● 2 个扩展接口

● 1 个 USB 设备接口

● 板载 SWD 调试功能(USB 接口,无需外接调试器)

3、开发板设备连接关系

标题

在上表中我们可以发现LCD屏幕与LED共用了一部分引脚(PC8-PC15)所以此时就需要使用到寄存器 我们后续再介绍

4、电路原理

(一)主控部分

 主控为STM32G431RBT6

 外部高速时钟频率24Mhz在STM32CubeMX中时钟配置时需要

其中包含RESET复位按键

(二)独立按键

独立按键B1-B4分别对应引脚PB0、PB1、PB2、PA0引脚

当按下开关时引脚接低电平。

(三)LED

R7-R16为限流电阻保护LED灯

LED灯为共阳极电路

SN74HC为锁存器,防止引脚冲突带来外设之间的干扰

PD2为锁存器的使能端口改变LED状态后要立即将锁存器开启后再关闭保证LED灯状态

PC8-PC15为LD1-8的控制引脚,拉低时LED灯亮

(四)LCD模块

 LCD模块比赛时会给我们代码,我们只需要学会如何使用这些函数就行

(五)模拟输入

 由两个可调电阻R37、R38与单片机PB5、PB12相连进行ADC采样

(六)可调脉冲输出

 通过555电路调节R39、R40电阻从而调节脉冲宽度

(七)IIC

 IIC通信

(八)额外引脚

后续部分将会持续更新。。。。。

第一次写文章还有许多问题,还请大家多多指点不是。qwq

;