zoukankan      html  css  js  c++  java
  • STM32学习笔记(一):跑马灯

    本实验所采用的开发板为正点原子的MiniSTM32f103rc开发板,主函数程序如下,注释如下:
    main.c

    #include "stm32f10x.h"
     void Delay(u32 count)
     {
      u32 i=0;
      for(;i<count;i++);
    
     }
     int main(void)
     {    
      GPIO_InitTypeDef  GPIO_InitStructure;
         
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);     //使能PA,PD端口时钟
        
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                 //LED0-->PA.8 端口配置
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽输出
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO口速度为50MHz
      GPIO_Init(GPIOA, &GPIO_InitStructure);                     //根据设定参数初始化GPIOA.8
      GPIO_SetBits(GPIOA,GPIO_Pin_8);                         //PA.8 输出高
    
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                 //LED1-->PD.2 端口配置, 推挽输出
      GPIO_Init(GPIOD, &GPIO_InitStructure);                       //推挽输出 ,IO口速度为50MHz
      GPIO_SetBits(GPIOD,GPIO_Pin_2);                          //PD.2 输出高       
      while(1)
        {
            GPIO_ResetBits(GPIOA,GPIO_Pin_8);
            GPIO_SetBits(GPIOD,GPIO_Pin_2);
            Delay(3000000);
            GPIO_SetBits(GPIOA,GPIO_Pin_8);
            GPIO_ResetBits(GPIOD,GPIO_Pin_2);
            Delay(3000000);
        }
     }

     如果使用正点原子厂家所提供的system文件下的delay.h的头文件,可以更加方便地进行延时,利用这个头文件的延时效果如下,主要调用了我们的delay_init()函数以及后面的delay_ms()函数即可:

    #include "stm32f10x.h"
    #include "delay.h"
     void Delay(u32 count)
     {
      u32 i=0;
      for(;i<count;i++);
    
     }
     int main(void)
     {    
      GPIO_InitTypeDef  GPIO_InitStructure;
         
         
        delay_init();
         
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);     //使能PA,PD端口时钟
        
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                 //LED0-->PA.8 端口配置
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽输出
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO口速度为50MHz
      GPIO_Init(GPIOA, &GPIO_InitStructure);                     //根据设定参数初始化GPIOA.8
      GPIO_SetBits(GPIOA,GPIO_Pin_8);                         //PA.8 输出高
    
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                 //LED1-->PD.2 端口配置, 推挽输出
      GPIO_Init(GPIOD, &GPIO_InitStructure);                       //推挽输出 ,IO口速度为50MHz
      GPIO_SetBits(GPIOD,GPIO_Pin_2);                          //PD.2 输出高       
      while(1)
        {
            GPIO_ResetBits(GPIOA,GPIO_Pin_8);
            GPIO_SetBits(GPIOD,GPIO_Pin_2);
            //Delay(3000000);
            delay_ms(300);
            GPIO_SetBits(GPIOA,GPIO_Pin_8);
            GPIO_ResetBits(GPIOD,GPIO_Pin_2);
            Delay(3000000);
        }
     }
  • 相关阅读:
    [探索][管理]《现在,发现你的优势》
    【成功智慧】010.依靠忍耐度过困难时期
    爱情五十九课,就差一句话
    VSS2005 托管 VS2010代码
    一个网站的金字塔战略
    【成功智慧】013.脚踏实地的去做,没有完不成的任务
    MU.Bread 麦卡优娜
    【成功智慧】012.要有耐心去等待成功的到来
    【成功智慧】009.要能够承受所发生的事情
    【成功智慧】014.一日复一日的度过难关
  • 原文地址:https://www.cnblogs.com/geeksongs/p/10776070.html
Copyright © 2011-2022 走看看