参考原子哥学习程序

条件:实验板STM32103ZET6;固件库STM32F10x_StdPeriph_Lib_V3.5.0;环境MDK5;

目的:了解STM32 的 IO 口如何作为输出使用 ;以两个LED灯交替闪烁为目标。

目录:

  • 1.新建工程
  • 2.硬件连接
  • 3.R软件设计
  • 3.1test1.c程序
  • 3.2 test.h头文件
  • 3.3 main.c主函数
  • 4.仿真下载

1.新建工程(简单介绍)

新建文件夹“实验一 流水灯”,里面建6个文件夹:CORE ,FWLib,HARDWARE,OBJ,SYSTEM,USER 。并在HARDWARE文件夹下新建文件夹LED。

从固件库选择文件考入上诉文件夹(其中SYSTEM中三个系统文件来自原子哥)。

MDK下新建工程test1,,将添加好文件的文件夹加载到工程中,并添加头文件路径和宏定义:STM32F10X_HD,USE_STDPERIPH_DRIVER。

2.硬件连接

LED0接PA0,LED1接PB1。

3.软件设计

需要编写只有HARDWARE下的test1.c与test1.h两个文件,以及主函数。

 3.1test1.c程序主要为了配置端口。程序如下:

#include "test1.h"

void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE); //PA、PB时钟使能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化
GPIO_SetBits(GPIOA,GPIO_Pin_0); //PA.0输出高 //PB.1配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_1); }

注:GPIO_SetBits即将对应的IO口置1

GPIO_ResetBits则为置0

3.2 test.h头文件为了定义端口。程序如下:

#ifndef __LED_H
#define __LED_H #include "sys.h" #define LED0 PAout(0) // PA0
#define LED1 PBout(1) // PB1
void LED_Init(void); //初始化 #endif

 3.3 main.c主函数初始化端口,循环执行。程序如下:

#include "test1.h"
#include "delay.h"
#include "sys.h" int main(void)
{ delay_init();
LED_Init(); //死循环
while()
{ LED0=;
LED1=;
delay_ms();
LED0=;
LED1=;
delay_ms();
}
}

4.仿真无误,下载运行。

   附源码:        实验一流水灯

实验一:基于STM32F1的流水灯实验(库函数)的更多相关文章

  1. Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)

    zynq系列FPGA分为PS部分和PL部分. PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分. PS: 处理系统 (Processing System) , 就是与F ...

  2. 基于STM32F1 的BASIC解码实验 vb basic 液晶显示执行过程及结果

    基于STM32F1 的BASIC解码实验 1.basic程序以文件形式存储 2.程序文件存储在sd卡 3.解释结果显示在液晶屏上 主函数部分 int main(void){ u16 i,j; dela ...

  3. cc2530的第三次实验,按键中断控制流水灯

    cc2530的第三次实验:按键中断控制流水灯 效果为按一次按键,流水灯亮一次 实验相关电路图: 实验相关寄存器: 初始化函数 //初始化LED灯 //设置P1SEL,通用为0,外设为1 1111110 ...

  4. 第三章 VIVADO 自定义IP 流水灯实验

    第二章里面已经说过了,MIZ701 PL部分没有输入时钟,因此驱动PL资源必须是通过PS来提供时钟,所以这个流水灯实验也得建立一个最小系统了,然后再添加一个流水灯的自定义IP. 3.0本章难度系数★★ ...

  5. ARM实验1 —— 流水灯实验

    实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...

  6. cc2530的第二次实验,用按键控制流水灯

    按键控制流水灯 具体想要实现按一下按键,然后单片机的三个灯会以流水灯的形式都亮一遍 实验相关寄存器 实验相关电路 宏定义 #define uint unsigned int #define uchar ...

  7. STM32学习笔记(二) 基于STM32-GPIO的流水灯实现

    学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...

  8. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块

    实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验 ...

  9. 基于ZYNQ 的UART中断实验之串口写数据到DDR3中

    1.参考 UG585 网络笔记 2.理论知识 参见上一次实验:基于ZYNQ 的UART中断实验 3.实验目的 练习使用UART的中断实验,并将接收到的数据写入到DDR3中. 4.实验过程 建立工程,设 ...

随机推荐

  1. python 获取前一天或前N天的日期

    简单实现 import datetime # 获取前1天或N天的日期,beforeOfDay=1:前1天:beforeOfDay=N:前N天 def getdate(self,beforeOfDay) ...

  2. centos清除dns cache.

    # /etc/init.d/nscd restart # service nscd restart # service nscd reload # nscd -i hosts https://www. ...

  3. [Canvas]Bombman v1.00

    爆破小人Canvas版,请点此下载,并用浏览器打开试玩. 图例: 源码: <!DOCTYPE html> <html lang="utf-8"> <m ...

  4. windows多线程同步--临界区

    推荐参考博客:秒杀多线程第五篇 经典线程同步 关键段CS   关于临界区的观念,一般操作系统书上面都有. 适用范围:它只能同步一个进程中的线程,不能跨进程同步.一般用它来做单个进程内的代码快同步,效率 ...

  5. Sequel Pro for Mac(MySQL 数据库管理工具)破解版安装

    1.软件简介    Sequel Pro 是一款管理 Mysql 的工具,界面简洁易用. 2.功能特色 FULL MYSQL SUPPORT Sequel Pro is a fast, easy-to ...

  6. Linux深入理解Socket异常

    在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题.分为两个场景来讨论 建立连接时的异常情况 1 正常情况下 经过三次握手,客户端连接成功,服务端有 ...

  7. 1.揭开消息中间件RabbitMQ的神秘面纱

    当你看到这篇博文的时候,相信你至少已经知道RabbitMQ 是一个非常优秀的消息中间件,它使用专门处理高并发的Erlang 语言编写而成的消息中间件产品. 当然如果你不知道也没关系,读完本篇你将Get ...

  8. What-is-DevOps

    https://www.quora.com/What-is-DevOps https://neoteric.eu/blog/devops-a-culture-of-getting-things-don ...

  9. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  10. c++类成员函数后边加const是为什么?

    时间是让人猝不及防的东西,晴是有风阴时有雨,争不过朝夕,又念着往昔,偷走了青丝却留住一个你 #include <iostream> #include <string> usin ...