STM32G431RBT6--LED模块入门

一、利用STM32CUBEMX生成工程框架

1.选择MCU

STM32G431RBT6--LED模块入门_第1张图片

STM32G431RBT6--LED模块入门_第2张图片 2.配置时钟

STM32G431RBT6--LED模块入门_第3张图片 3.配置GPIO

STM32G431RBT6--LED模块入门_第4张图片

4. 配置Project Manager

STM32G431RBT6--LED模块入门_第5张图片

STM32G431RBT6--LED模块入门_第6张图片

二、利用STM32CUBEMX生成初始化代码文件

 5.打开工程文件

STM32G431RBT6--LED模块入门_第7张图片

STM32G431RBT6--LED模块入门_第8张图片

 6.编译Keil代码--生成的框架是否有错误

STM32G431RBT6--LED模块入门_第9张图片

7.按模块添加代码

在gpio.c中添加代码

STM32G431RBT6--LED模块入门_第10张图片

 在gpio.h中声明函数

STM32G431RBT6--LED模块入门_第11张图片

 在main.c中调用函数

STM32G431RBT6--LED模块入门_第12张图片

8.配置Options

STM32G431RBT6--LED模块入门_第13张图片

STM32G431RBT6--LED模块入门_第14张图片 STM32G431RBT6--LED模块入门_第15张图片

三、测试代码

9.下载运行

STM32G431RBT6--LED模块入门_第16张图片

10.实验结果

(1)LED_TEST函数的结果

STM32G431RBT6--LED模块入门_第17张图片

 (2)LED_Disp函数的结果

首先解释一下这个函数的作用就是可以控制LD灯一个或几个同时亮,比如我传入的参数是0x44,转换为二进制即为0100 0100,1对应的灯就可以亮起来。 STM32G431RBT6--LED模块入门_第18张图片

 四、函数学习

想要学习哪个函数就直接右击去看函数定义即可。

STM32G431RBT6--LED模块入门_第19张图片

1) void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)------翻转电平

参数解释:

 GPIO_TypeDef *GPIOx:x从A-G

 GPIO_Pin:可选项如下STM32G431RBT6--LED模块入门_第20张图片

 例如:例:HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);翻转一次PC8的电平

 (2)void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)----写入

参数解释:前两个参数解释同上

第三个参数:GPIO_PinState PinState取值如下:

GPIO_PIN_RESET   低电平

GPIO_PIN_SET        高电平

五、问题总结

在用CubMax生成框架配置GPIO初始时为什么要把每个引脚设置成高电平呢?

解释:

首先看一下LED灯的原理:

STM32G431RBT6--LED模块入门_第21张图片

LED:当阳极电平>阴极电平时,LED导通发光

  • 当PC8为高电平时灯才会亮,
  • 当PC8为低电平时灯就不会亮
  • STM32G431RBT6--LED模块入门_第22张图片

 当PC8-PC15为低电平时,灯才会亮,因为初始时希望LD灯不亮,灯的亮灭有个573锁存器在控制

STM32G431RBT6--LED模块入门_第23张图片

 STM32G431RBT6--LED模块入门_第24张图片

因此初始的时候把PC8-PC15都置成高电平,灯才是熄灭的状态

你可能感兴趣的:(python,pandas)