STM32G4入门

时间:2021-01-28 00:44:34

1.STM32G431简介

      STM32系列32位微控制器基于Arm® Cortex®-M处理器,旨在为MCU用户提供新的开发*度。它包括一系列产品,集高性能、实时功能、数字信号处理、低功耗/低电压操作、连接性等特性于一身,同时还保持了集成度高和易于开发的特点。

STM32G4入门

特性:

  • LQFP64封装中的STM32G4微控制器(170 MHz下的Arm®Cortex®-M4)具有:

     STM32G431RBT6:128 KB的闪存和32 KB的SRAM;

     STM32G491RET6:512 KB闪存和96 KB SRAM;

     STM32G474RET6:512 KB闪存和128 KB SRAM;


  • 与STM32G473RET6完全兼容(512 KB的闪存和128 KB的SRAM)

     1个用户LED;

     1个用户按钮和1个重置按钮;

     32.768 kHz LSE晶体振荡器;

     24 MHz HSE振荡器;


  • 电路板连接器:

     带Micro AB的USB;

     MIPI®调试连接器;

     ARDUINO®Uno V3扩展连接器;

     ST morpho extension引脚头,可完全访问所有STM32G4 I/O;

     灵活的电源选项:ST-LINK、USB VBU或外部电源;

     具有USB重新枚举功能的车载STLINK-V3E调试器/编程器:大容量存储、虚拟COM端口和调试端口;

     STM32CubeG4 MCU软件包提供全面的*软件库和示例;

     支持多种集成开发环境(IDE),MDK-ARM和STM32CubeIDE;

  STM32G431x6/x8/xB设备基于高性能Arm®Cortex®-M4 32位RISC内核。它们的工作频率高达170MHz。Cortex-M4内核具有单精度浮点单元(FPU),支持所有Arm单精度数据处理指令和所有数据类型。128KB flash 和32KB SRAM

    它们提供两个快速12位ADC(5 MSP)、四个比较器、三个运算放大器、四个DAC通道(两个外部和两个内部)、一个内部电压基准缓冲器、一个低功耗RTC、一个通用32位定时器、两个专用于电机控制的16位PWM定时器、七个通用16位定时器和一个16位低功耗定时器。

STM32G4入门

2.LED和按键硬件接口

​STM32G431开发板有一个用户按钮和LED灯

  根据原理图,LD2和PA5相连,想要点亮LED则PA5应该为高电平。

STM32G4入门

用户按键B1和PC13相连,按下为高电平;

STM32G4入门

3.硬件驱动配置示例

3.1芯片型号选择

  本示例所使用芯片型号为:STM32G431RBT6;128KB flash 和32KB SRAM,工作频率高达170MHz。这里采用STM32CubeMX功能生成代码。

STM32G4入门

3.2 时钟配置

STM32G4入门

STM32G4入门

3.3 GPIO引脚配置

STM32G4入门

STM32G4入门

3.4 生成代码

STM32G4入门

STM32G4入门

3.5LED和按钮引脚配置

STM32G4入门

3.6 获取按键值函数编写

/*获取按键值*/
uint8_t Get_KeyVal(void)
{
uint8_t static stat=0;
if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==1 && stat==0)//判断按键是否按下
{
HAL_Delay(20);//延时消抖
stat=1;
if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin))return 1;
}
else if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==0)
{
stat=0;
}
return 0;
}

3.7 主函数

  uint8_t key;
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
key=Get_KeyVal();
if(key)
{
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
}
}

STM32G4入门

开发板本身集成ST_Link下载器,只需安装ST_Link驱动即可直接下载。