开发板:STM32h743xi
编程软件:Keil、STM32CubeMX
项目:GPIO外设操作(彩色LED灯)
学习打卡:Day1
学习地址:【野火】STM32 HAL库开发实战指南 教学视频 手把手教学STM32全系列 零基础入门CubeMX+HAL库,基于野火全系列STM32开发板
一、STM32h743xi上LED灯的原理图
从上图我们可以看出
- LED_R是通过PB0口调节的
- LED_G是通过PB1口调节的
- LED_B是通过PA3口调节的
二、通过STM32CubeMX软件进行外设初始化代码的生成
因为使用的是野火公司制作的开发板,所以使用mcu进行选择
进入软件后在此搜索H743xi,然后双击搜索到的mcu
因为在第一步中,我们找到了对应GPIO的接口,在此可以直接搜索
- PB0
- PB1
- PA3
拿PB0为例,点击搜索出来的接口,选择GPIO输出
然后在GPIO除进行配置
- 输出电平为低电平
- 模式为推挽输出
- GPIO既不上拉也不下拉
- 选择低速
如果不是我这款mcu,需要配置sys,debug选项
然后点击project manager,进入项目管理
首先配置Project中的选项
- 工程名称
- 工程路径
- IDE需要选择MDK-ARM
- 如果不想使用最新的固件包,可以选择本地进行替换
配置Code Generator
- 选择只复制需要的文件
- .c .h 进行划分处理
然后点击 GENERATE CODE,进行生成代码
三、通过Keil进行编程
1、配置Debug选项
2、然后继续构建,下载
然后查看状态
发现LED为混色输出,可以更改代码,进行相应的颜色修改,并翻转电平
在gpio.c中将LED关闭
3、将其写在主函数中
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
HAL_Delay(1000);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
选用B0口(红色)进行翻转,看效果图