| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> stm32——点亮LED -> 正文阅读 |
|
[嵌入式]stm32——点亮LED |
1.点亮LED灯的准备工作 需要了解GPIO的基本工作原理,话不多说,先上图 ?关于详细的功能介绍,请参考普中科技F407详细资料,今天主要到的是GPIO的推挽输出模式 如图 通过软件向寄存器中写入数据,然后通过图中所示线路控制IO口输入高低电平,从而控制LED灯。 其次,需要了解GPIO配置所需的寄存器,比如模式寄存器,时钟寄存器,置位复位寄存器等。 了解了这些,我们就可以开始点灯了 点灯大法一——使用寄存器点亮LED 1.查看开发板原理图,看看自己的板子上LED是与哪一个管脚连接。(我用的普中f407,LED与gpiof9连接) 根据原理图,要使LED1亮,就必须让PF9输出为低电平。 下面就开始使用寄存器来操作 STM32 使 PF9 输出一个低电平。要操作 STM32
这里需要GPIOF的总线的地址,也就是说,GPIOF是挂接到AHB1总线上的,然后就是配置GPIO的各种模式需要的寄存器地址(详细参考普中科技) 将寄存器封装好就可以编写程序了
首先让GPIOF起作用,就必须让对应的管脚使能,即给他置1. ?该寄存器第5位是GPIOF设置位,通过将第五位置1,将PF9使能。通过查看手册,将模式寄存器配置为推挽输出,然后通过置位寄存器将PF9置0,就完成了基本的点亮LED的操作。编译,下载后就可以看到效果。 当然也可以配置速度寄存器等,也可以写延时函数实现闪烁的效果。 不过,使用寄存器点灯太过麻烦,需要修改的话很不方便 然后就有了点灯大法——固件库函数 stm公司封装了大量的库函数,我们只需要将库以及一些内核文件加载进工程,就可以轻松实现点灯,看操作: 首先需要建立几个文件夹 ?然后就需要在开发板提供的资料中去复制需要的文件,user中需要的基本文件如下 Libraries中需要的文件 ?CMSIS中包含一些内核文件以及启动文件 ?STM32F4xx_Stdperiph_driver包含的是各种外设,把资料中的全部复制过来就行 复制完以上内容,就可以建工程, ?添加文件 ?将所需要的文件添加到工程。然后开始配置选项卡。 基本步骤和寄存器模板类似值得注意的地方就是 一定要注意,第二步中间是逗号,不然会报很多错。添加文件时注意路径是否添加正确。 在写程序之前,先创建一个文件夹,将LED的代码保存在这个文件夹中,方便修改和维护。 ?里面新建上图中的.c和.h文件。 编写.h文件 ? ?用固件库点亮LED步骤; 首先端口使能,初始化(各种寄存器配置),对管脚置低电平; GPIOF端口使能函数 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); 后面的参数都可以在相应的头文件中找到。 初始化函数 首先定义结构体变量 ?GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure结构体中的成员都已经在头文件封装好,只需要将需要的成员找到并赋值即可。 ??? GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;//模式为输出模式; 然后就需要一个重要的函数,为管脚置位。 GPIO_ResetBits(GPIOF,GPIO_Pin_9);GPIO管脚输出低电平; ?GPIO_SetBits(GPIOF,GPIO_Pin_9);GPIO复位,输出高电平; 然后将代码整合一下,在led.c文件编写LED初始化函数
?将写好的函数在头文件声明; 然后在主函数中引用
这样就完成了LED灯的点亮。添加一个延时和复位函数就可以实现闪烁效果; 部分资源来源于普中科技,如有侵权,联系删除(2361823003@qq.com) |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 18:51:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |