【嵌入式操作系统】实验2:GPIO编程及应用
文章目录
- 一、实验目的
- 二、实验环境
- 三、实验内容
- 1.实验任务
- 2.实验步骤
- 总结
一、实验目的
- 熟悉STM32 模块的GPIO硬件连接;
- 掌握GPIO初始化配置;
- 掌握GPIO控制板上LED灯编程;
- 熟练KEIL 工程的配置,编译,调试,下载。
二、实验环境
- 操作系统:WINDOWS 10
- 开发工具:Keil 4,UartAssists
- 实验设备:125K RFID读写器模块、JLink在线调试器、电源、PC
三、实验内容
1.实验任务
运行程序后,LED灯D7、D8按照全熄灭、亮红灯,亮蓝灯、全亮的顺序保持1段时间(约1秒),并循环运行;
本实验所使用的是125K RFID读写器模块、JLink在线调试器、电源、PC;
2.实验步骤
(1)查看硬件原理图,查找板上两个LED D7,、D8所连接的GPIO口;
(2)打开给定STM32工程模板,工程文件在Object文件夹下。了解模板主要文件作用。生成、下载并运行程序;
(3)添加固件库GPIO,了解GPIO固件库中函数的作用,参考文档《STM32固件库使用手册(中文)》,重点分析;掌握GPIO_Init()、GPIO_SetBits()、GPIO_ResetBits()、GPIO_WriteBit()、GPIO_Write()、GPIO_ReadInputDataBit()、GPIO_ReadInputData()的作用和用法;
(4)使用循环定义延时函数Delay( ),延迟时间大约1秒;
(5)完成D7,D8的初始化函数;
(6)在主函数中初始化完成后,利用GPIO_WriteBit()、GPIO_Write()函数编写代码控制按照D7,D8全熄灭、亮红灯,亮蓝灯、全亮,每种状态用Delay()保持1秒,并无限循环;
走马灯效果:
源代码:
#include"main.h"
#define LED1 GPIO_Pin_12
#define LED2 GPIO_Pin_13
void LightLed()
{GPIO_SetBits(GPIOB,LED1) ; //置1全灭GPIO_SetBits(GPIOB,LED2);Delay_ARMJISHU(1000) ;GPIO_ResetBits(GPIOB,LED2);//亮红灯Delay_ARMJISHU(1000) ;GPIO_SetBits(GPIOB,LED2) ; //置1红灯灭GPIO_ResetBits(GPIOB,LED1) ;//蓝灯亮Delay_ARMJISHU(1000) ;GPIO_ResetBits(GPIOB,LED1); //置0全亮GPIO_ResetBits(GPIOB,LED2);Delay_ARMJISHU(1000);
}void Delay_ARMJISHU(__IO uint32_t nCount)//延时程序
{unsigned int i,k ;for(i=0;i<nCount;i++)for(k=0;k<12000;k++);
}void GPIO_Init_config(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB ,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);
}int main(void)
{ RCC_Configuration() ;//系统时钟初始化GPIO_Init_config();while (1){LightLed();}
}
总结
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)。GPIO 驱动可以用作多个用途,包括管脚设置,单位设置/重置,锁定机制,从端口管脚读入或者向端口管 脚写入数据。
通过这次实验,熟悉STM32 模块的GPIO硬件连接;学习到了GPIO口的功能及使用方法,了解GPIO固件库中GPIO_Init()、GPIO_SetBits()、GPIO_ResetBits()、GPIO_WriteBit()、GPIO_Write()、GPIO_ReadInputDataBit()、GPIO_ReadInputData()的作用和用法;掌握GPIO初始化配置;并掌握GPIO控制板上LED灯编程。
【嵌入式操作系统】实验2:GPIO编程及应用相关推荐
- 嵌入式操作系统µCOS-II及应用编程
点击打开链接 嵌入式操作系统µCOS-II及应用编程 µCOS-II是一个嵌入式实时操作系统,广泛的应用于控制系统中.µCOS-II有Micrium公司提供,是一个可移植.可固化的.可裁剪的.抢占式多 ...
- 嵌入式系统 实验一 GPIO口控制LED实验
实验一 GPIO口控制LED实验 1 实验目的 了解并掌握如何控制 STM32 的 GPIO: 掌握控制 LED 的电路原理和程序代码: 2 实验环境 硬件:1 个空气温湿度传感器模块.1 个 ST- ...
- 嵌入式系统与通用计算机系统的区别,嵌入式操作系统和通用计算机系统的区别是什么...
描述 (文章来源:OFweek) 嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向.通用计算机系统的技术要求是高速.海量的数值计算,其技术发展方向是总线速度的无限提升.存储容量的无限扩大 ...
- 嵌入式系统与通用计算机系统的区别,嵌入式操作系统和通用计算机系统两者有什么不同之处...
(文章来源:OFweek) 嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向.通用计算机系统的技术要求是高速.海量的数值计算,其技术发展方向是总线速度的无限提升.存储容量的无限扩大:而嵌 ...
- Linux应用开发【第九章】GPIO编程应用开发
文章目录 9 GPIO编程应用开发 9.1 GPIO编程基础介绍 9.2 GPIO编程软件接口 9.2.1 控制接口 9.2.2 GPIO信号 9.2.3 GPIO控制器 9.3 IMX6ULL开发板 ...
- linux系统编程界面实验报告,操作系统实验报告-Linux操作使用编程.doc
操作系统实验报告-Linux操作使用编程 实 验 报 告( 2012/ 2013 学年 第二学期) 课程名称操 作 系 统A实验名称Linux操作.使用.编程实验时间2013年 5 月 6日指导单位计 ...
- 慕课嵌入式系统(第九章.ucos-ii操作系统实验)
慕课电子科技大学.嵌入式系统.第九章.嵌入式实时操作系统实验.ucos-ii操作系统实验 0 目录 9 嵌入式实时操作系统实验 9.1 ucos-ii操作系统实验 9.1.1课堂重点 9.1.2测试与 ...
- [嵌入式]S5PV210微处理器GPIO编程
第四章 S5PV210微处理器GPIO编程 4.1 S5PV210硬件资源 S5PV210是一款32位精简指令集计算机(RISC),具有低成本.低功耗.高性能的微处理器解决方案,适用于手机及一 ...
- linux系统shell讲解实验报告,《操作系统》课程实验报告 SHELL编程.doc
华南理工大学 <操作系统 SHELL编程 姓名: 余柳红 学号: 201330571011 班级: 13信息安全班 合作者: 无 指导教师: 贺小箭 实验概述[实验目的及要求] 实验目的: 熟悉 ...
- 实验6Linux系统开发环境,哈工大嵌入式操作系统课件—6 Linux开发环境1-linux基.ppt...
<哈工大嵌入式操作系统课件-6 Linux开发环境1-linux基.ppt>由会员分享,可在线阅读,更多相关<哈工大嵌入式操作系统课件-6 Linux开发环境1-linux基.ppt ...
最新文章
- 【matlab】第三章数组和数组的运算
- R语言dplyr包pull函数抽取dataframe数据列实战
- Less 常用基础知识
- DES加密解密算法Java实现
- 检索图书 FindMess.java
- 雨棚板弹性法计算简图_造价工程师:钢结构工程量计算注意事项
- 牛客网 牛客小白月赛1 H.写真がとどいています
- Pandas 文本数据方法 get_dummies()
- SpringMVC中RestFul风格
- html中table边框属性
- 年度最流行英文字体20款
- 神经网络 游戏,神经连接游戏
- 技术分析是我的唯一信仰
- Windows平台通过CMD查询域名的Whois信息
- 比Gmail更强悍:超大3GB免费邮箱申请!
- 计算机管理home,电脑home键是什么意思
- 为什么说指针是 C 语言的精髓
- 推荐几款高效的Python文本编辑器!
- Ansys的电磁场分析和系统电路仿真软件Electronics 2023版本下载和安装教程
- 顶刊文献数据:商帮文化对企业融资行为的影响研究