实验二 软件开发环境搭建与 GPIO应用

相关电路代码文件下载:https://wwe.lanzouw.com/ioorOyxic0h

目录

  • 实验二 软件开发环境搭建与 GPIO应用
    • 一.实验目的
    • 二.实验内容
    • 三.电路设计说明
    • 四.电路图
    • 五.程序设计说明
    • 六.主要的程序源码
    • 七.实验结果
    • 八.总结

一.实验目的

(1)熟悉STM32CubeMX的安装与使用。
(2)熟悉MDK Keil软件的安装与使用。
(3)熟悉Proteus仿真软件的使用。
(4)掌握STM32中GPIO的特性与应用方法。

二.实验内容

利用红色、绿色、黄色发光二极管和数码管设计一个交通灯。交通灯由一组红、黄、绿二极管和两个数码管组成。初始状态下,绿灯亮30秒,然后黄灯闪烁3秒,接着红灯亮30秒,如此重复上述亮灯过程。同一时刻只有一个灯亮,红灯和绿灯亮时数码管显示剩余秒数。
(1)利用Proteus软件基于STM32F103设计交通灯电路。
(2)利用STM32CubeMX和MDK Keil设计交通灯程序,并在Proteus软件上仿真。

三.电路设计说明

准备两个数码管,分别表示个位数和十位数。使用一组红黄蓝LED。外加10Ω电阻和+5V电源若干,数码管和LED灯都需要接电阻和电源。将显示十位数的数码管的7个引脚依次接到PA0-PA6上,将显示个位数的数码管的7个引脚依次接到PC0-PC6上,将红色LED灯的引脚接到PB0,黄色LED灯的引脚接到PB1,绿色LED灯的引脚接到PB2。

四.电路图


图 1 实验设计电路图

五.程序设计说明

首先将控制数码管显示的数据存储到number数组中,以便后面使用。编写一个显示倒计时的函数daojishi。daojishi函数传入参数是要显示倒计时的秒数,经过计算提取出个位数和十位数,然后输出显示。构建延时函数delay,设定进行50万次空循环为1秒。主程序中先定义控制红黄绿灯显示的数据。在whlie循环中,首先显示绿灯,延时30秒并调用daojishi函数显示倒计时。然后显示黄灯,延时3秒,在这3秒钟内每秒都改变一下状态,闪烁一下,在这期间将数码管关闭,不显示任何数据。最后显示绿灯,延时30秒并调用daojishi函数显示倒计时。

六.主要的程序源码

unsigned char number[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void daojishi(int sec){int shi,ge;shi = sec/10;ge = sec%10;GPIOA->ODR=~number[shi];GPIOC->ODR=~number[ge];
}
void delay(int sec){int  i;for (i=0;i<sec*500000;i++){}
}
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();/* USER CODE BEGIN WHILE */unsigned int red = 0x0001;unsigned int yellow = 0x0002;unsigned int green = 0x0004;while (1){int j;GPIOB->ODR=~(green);for(j=30;j>0;j--){daojishi(j);HAL_Delay(100);}GPIOA->ODR=0xff;GPIOC->ODR=0xff;GPIOB->ODR=~(yellow);for(j=3;j>0;j--){if (j%2==0){GPIOB->ODR=0xff;}else{GPIOB->ODR=~(yellow);}HAL_Delay(100);}GPIOB->ODR=~(red);for(j=30;j>0;j--){daojishi(j);HAL_Delay(100);}}
}

七.实验结果

开始仿真,首先亮绿灯,数码管从30开始倒计时,如图2所示。

图 2 绿灯亮时

绿灯倒计时结束时,绿灯熄灭,开始闪烁黄灯,数码管熄灭,如图3所示。

图 3 黄灯亮时

黄灯熄灭后亮红灯,数码管从30开始倒计时,如图4所示。红灯倒计时结束后恢复默认状态,如图2所示。

图 4 红灯亮时

八.总结

这是第一次完整的嵌入式实验。实验要求设计一个红绿灯及其倒计时显示。由于是第一次实验,开始时不知道怎么设计电路,通过查找资料和同学帮助,设计好了电路图。然后是编程部分。编程部分比较简单,使用几个循环就可以了。通过这次实验,让我对嵌入式实验有了简单的了解,我以后还会继续学习,继续提高自己的能力。

实验二 软件开发环境搭建与 GPIO应用相关推荐

  1. CUDA在Windows下的软件开发环境搭建

    http://www.cnblogs.com/yaoyuanzhi/archive/2010/11/13/1876215.html CUDA在Windows下的软件开发环境搭建 本文我们以Visual ...

  2. Arduino软件开发环境搭建

    简 介: 给出了Arduino开发软件的下载与测试过程. 关键词: Arduinon,IDE Install the Arduino Software (IDE) on Windows PCs §01 ...

  3. Android软件开发环境搭建

    步骤一:下载并安装JDK (Java SE Development Kit)  由于Android SDK和Eclipse都是用Java编写的,因此需要先在Windows 7上安装JDK,JDK可按以 ...

  4. 软件开发环境搭建系列之sublime text的相关配置(九)

    文章目录 一.st的获取及安装 1.1.st获取 二.st安装 2.1.下载说明部分 2.2.st的激活 三.安装插件管理工具 3.1.st插件管理工具Package Control 3.2.st的界 ...

  5. STM32 软件开发环境搭建

    无论哪一个单片机环境的搭建均包括三部分:程序开发编译调试程序(MDK).驱动程序.下载至单片机的程序 下载地址:链接:https://pan.baidu.com/s/1zSE6ie6sp844bTPf ...

  6. FFmpeg windows软件开发环境搭建

    FFmpeg说明 FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能1,包含了libavcodec ─这是一个用于多个项目中音频和视频的×××库,以及libavformat-- ...

  7. DA14580软件开发环境搭建

    KEIL开发环境有两个需要软件包需要配置. 第一部分是CMSIS 第二部分是SDK 通过CMSI和SDK的一层层的封装,包装,目的就是为了user更简单,好用. 就像STM32编程的库函数版本,和寄存 ...

  8. DSP TMS320C6000基础学习(3)——CCS v5软件开发环境搭建

    ================================================== DSP CCS工程文件构成 =================================== ...

  9. Unity_实验二_游戏场景搭建

    实验二 游戏场景搭建 实验目的: 掌握游戏场景搭建. 实验要求: 能够使用Unity的地形引擎创建地形,熟悉场景中的光照与阴影,掌握天空盒和雾化效果等. 实验内容: 地形的绘制:使用高度图绘制:使用笔 ...

最新文章

  1. STL标准库-容器-set与map
  2. 程序员面试系列之Java单例模式的攻击与防御
  3. .net core consul 服务配置 服务发现 服务健康检测 服务变更加载
  4. 又学到了一个拒绝加班的技巧
  5. 矩阵论及其应用_数值分析篇——向量和矩阵的范数
  6. 中国互联网网站尴尬排行榜[转]
  7. 【JavaScript算法】---快速排序法
  8. SpringBoot2.0 最简单的 idea 快速创建项目
  9. webbrowser 打开支付宝网页提示无权打开_在押人员生活缴费更便利:支付宝线上“智慧监所”...
  10. Linux内存管理 -- smaps讲解
  11. Google 搜索的基本语法
  12. FPGA入门——1位全加器设计
  13. 无线RTU 数据采集 远程测控
  14. SmartBi参数传值与JS报表宏及Mysql数据集特殊功能总结
  15. jvm gc日志分析和工具
  16. Protel DXP 使用教程 - 自定义集成库
  17. python简易爬虫获取A股上证所有股票历史数据
  18. 青少年计算机编程经验,青少年学习计算机编程前景
  19. 软件设计模式——单例模式
  20. MYSQL补充SQL语句

热门文章

  1. AtCoder Grand Contest 017 迟到记
  2. 尽管存在 DDoS 攻击,但不要放弃 Dyn 或 DNS 服务提供商
  3. Viewing Information About CDBs PDBs
  4. flutter Map遍历循环使用break
  5. 低效能人士的 7 个习惯
  6. 计算机装机报方案,设计计算机装机专项方案(14页)-原创力文档
  7. deian10 安装aptitude
  8. php opcache 坑,PHP-FPM占用CPU过高分析及OPcache解决
  9. 在线客服如何提高咨询转化率
  10. 基于c++的简易web服务器搭建(初尝socket编程)