| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> stm32F407学习笔记2——GPIO操作跑马灯实验 -> 正文阅读 |
|
[嵌入式]stm32F407学习笔记2——GPIO操作跑马灯实验 |
一、库函数版本1、硬件原理图
2、软件设计打开上一节新建的库函数版本工程模板,直接点击工程下面的 USER 目录下面的 Template.uvproj。 在FWLIB文件夹中有多余的源文件,使得编译速度变慢,可以去掉多余的源文件,留下上面使用的5个源文件,右击 Template,选择“Manage project Items”,进入这个选项卡
用同样的方法新建一个 led.h 文件,也保存在 LED 文件夹下面。在 led.h 中输入如下代码:
接着,我们在 Manage Project Itmes 管理里面新建一个 HARDWARE的组,并把 led.c 加入到这个组里面。这样就把led.c文件添加到工程中了
函数快速跳转:双击函数,右键点击Go To Definition Of ’ ’ 二、寄存器版本操作步骤与库函数版本一致,在led.h输入如下代码:
在led.c中写寄存器的led初始化函数 1、使能IO口时钟配置相关寄存器寄存器RCC->AHB1ENR,打开STM32F4XX中文参考手册的6.3.12 小节RCC AHB1 外设时钟使能寄存器,可以看到GPIOF在标号的第5位,设置为1使能IO端口F时钟,其他位不变
2、初始化IO口模式配置四个配置寄存器 GPIOx_MODER/ GPIOx_OTYPER/ GPIOx_OSPEEDR/ GPIOx_PUPDR;打开STM32F4XX中文参考手册的7.4.1小节可以看到控制IO口的9和10,设置为01:通用输出模式
OSPEEDR和PUPDR寄存器同MODER寄存器一样都是32位寄存器,配置方式相同,OTYPER是16位寄存器,有一点不同 3、操作IO口,输出高低电平配置寄存器GPIOX_ODR或者BSRRL/BSRRH。
在led.c文件中的代码:
主函数的代码为:
烧录进开发板后看到两个LED交替闪烁 三、位操作前两步使能IO口时钟和初始化IO口模式操作跟前面一样,只是在操作IO口,输出高低电平时使用位带操作。
这里的PFout(9)和PFout(10)可以简单理解为GPIOF寄存器第9和10端口的另一个地址,与寄存器上32个地址一一对应,他们之间是映射关系中间通过进行转换。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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年12日历 | -2024/12/28 2:02:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |