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);
        }
     }
  • 相关阅读:
    ndoejs解析req,伪造http请求
    ndoejs创建多重文件夹
    路径path的正则通配符-nodejs
    例题1.5 快速排序
    例题1.3 整数划分问题
    sdcf day4 qaq模拟赛总结
    P1168 中位数
    浅谈LCA
    sdcf day1 qwq比赛题解
    2019山东夏令营划水记
  • 原文地址:https://www.cnblogs.com/geeksongs/p/10776070.html
Copyright © 2011-2022 走看看