zoukankan      html  css  js  c++  java
  • 实验一:基于STM32F1的流水灯实验(库函数)

    参考原子哥学习程序

    条件:实验板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(1)
    {
    
    LED0=0;
    LED1=1;
    delay_ms(300); 
    LED0=1;
    LED1=0;
    delay_ms(300); 
    }
    }

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

       附源码:        实验一流水灯

  • 相关阅读:
    关于面试总结8-http协议相关面试题
    关于面试总结7-linux篇
    关于面试总结6-SQL经典面试题
    关于面试总结5-python笔试题(递归)
    关于面试总结4-python笔试题
    关于面试总结3-SQL查询
    关于面试总结2-SQL学生表
    关于面试总结1-SQL学生表
    浅谈多变量线性回归中的数据规范化
    浅谈KL散度
  • 原文地址:https://www.cnblogs.com/wangguchao/p/7296274.html
Copyright © 2011-2022 走看看