IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【STM32】基于STM32F4使用STM32CubeMX配合Keil点亮LED流水灯 -> 正文阅读

[嵌入式]【STM32】基于STM32F4使用STM32CubeMX配合Keil点亮LED流水灯

一、搭建STM32开发环境

  1. 安装jdk
    由于STM32CubeMX是Java实现的,需要安装jdk环境。
    jdk官网下载链接:https://www.oracle.com/java/technologies/javase-downloads.html

  2. 安装STM32CubeMX
    下载地址:https://www.st.com/en/development-tools/stm32cubemx.html

  3. 具体安装过程详见
    https://blog.csdn.net/qq_43279579/article/details/112213196

二、使用寄存器地址方式点亮LED灯

(1)使用CubeMX生成相关代码

  1. 选择New Project
    在这里插入图片描述

  2. 选择芯片型号,并创建工程
    在这里插入图片描述

  3. 配置引脚功能
    在这里插入图片描述
    ??在右下角输入要设置的管脚。这里以将PF6设置为GPIO_Output为例,输入后中心芯片会有点变为绿色,这个点就是搜索的PF6
    在这里插入图片描述

    ??点击绿色的电,弹出一个下拉栏,选择GPIO_Output,左键单击后完成设置。
    ??同理地,搜索到PF7PF8,将其设置为GPIO_Output

  4. GPIO相关设置
    在这里插入图片描述

    GPIO output level:有low和high两种选择,一般选择low
    GPIO mode:推挽输出和开漏输出两者模式,两者模式的区别在于推挽输出中1代表VCC,0表示GND;开漏输出中1代表高阻态,0代表GND。
    GPIO Pull-up/Pull-down:输入需要上下拉,输出一般没有上下拉
    Maxinum output speed:最大的输出速度,一般选择low就可以了。

  5. 生成相关代码

    点击Project Manager,设置好工程名与文件位置
    在这里插入图片描述
    点击Generate Code
    在这里插入图片描述
    然后弹出一个窗口,Open FolderOpen Project应该都可以。我这里用的前者,然后在子文件夹MDK-ARM里找到了生成的keil5文件LED.uvprojx。

(2)修改Main函数

打开生成的keil5文件,找到 main.c,然后在代码区大概找到int main()
在这里插入图片描述
代码是STM32CubeMX自动生成的,需要把 while(1里面的内容替换掉,替换内容如下:

int main(void)
{

  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  while (1)
  {
		GPIOF->ODR &= ~(1<<6); //操作PF6,设置为高电平
		GPIOF->ODR |= 1<<7;	  //操作PF7,设置为低电平
		GPIOF->ODR |= 1<<8;	  //操作PF7,设置为低电平
		HAL_Delay(500);//延时500毫秒
	  
		GPIOF->ODR |= 1<<6;   //操作PF6,设置为低电平
		GPIOF->ODR &= ~(1<<7); //操作PF7,设置为高电平
		GPIOF->ODR |= 1<<8;	  //操作PF7,设置为低电平
		HAL_Delay(500);	//延时500毫秒
		
		GPIOF->ODR |= 1<<6;   //操作PF6,设置为低电平
		GPIOF->ODR |= 1<<7;	  //操作PF7,设置为低电平
		GPIOF->ODR &= ~(1<<8); //操作PF8,设置为高电平
		HAL_Delay(500);	//延时500毫秒
  }
}

编译并烧录验证
在这里插入图片描述
编译无误,使用FlyMcu进行烧录
在这里插入图片描述
烧录成功
请添加图片描述
成功通过寄存器地址方式用GPIO端口完成3只LED红绿灯的周期闪烁!

三、使用HAL库点亮LED灯

(1)使用CubeMX生成相关代码

该过程与使用寄存器地址方式点亮LED灯步骤一致。

(2)修改Main函数

打开生成的keil5文件,找到 main.c,然后在代码区大概找到int main()
在这里插入图片描述
代码是STM32CubeMX自动生成的,需要把 while(1里面的内容替换掉,替换内容如下:

int main(void)
{

  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  while (1)
  {
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_6,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_8,GPIO_PIN_SET);
	  HAL_Delay(500);	//延时500毫秒
	  
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_6,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_8,GPIO_PIN_SET);
	  HAL_Delay(500);	//延时500毫秒
	  
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_6,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOF,GPIO_PIN_8,GPIO_PIN_RESET);
	  HAL_Delay(500);	//延时500毫秒

  }
}

编译并烧录验证
在这里插入图片描述
编译无误,使用FlyMcu进行烧录
在这里插入图片描述
烧录成功
请添加图片描述
成功通过HAL库方式用GPIO端口完成3只LED红绿灯的周期闪烁

四、总结

??STM32CubeMx软件是ST公司为STM32系列单片机快速建立工程,并快速初始化使用到的外设、GPIO等,大大缩短了我们的开发时间。

五、参考

搭建STM32开发环境——STM32CubeMX,Keil5

STM32学习笔记一——使用STM32CubeMX点亮一个LED灯/制作一个流水灯

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:38:50  更:2021-10-20 12:41:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码