zoukankan      html  css  js  c++  java
  • STM32点亮闪烁LED灯

    详解请看其他博客:

     http://www.cnblogs.com/whik/p/6672730.html

    http://www.51hei.com/bbs/dpj-38605-1.html

     

     

     1         /*本程序实现STM开发板上LED灯红绿蓝闪烁*/
     2 
     3 
     4 
     5 #include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>
     6 #include "stm32f10x_gpio.h" 
     7 /*
     8     
     9     *由于STM32的GPIO工作模式有8种(输入4种+输出4种)
    10     *在GPIO输出之前要先对要操作的GPIO进行配置
    11     知识点:
    12     一个结构体
    13                     typedef struct//结构体
    14                 {
    15                     uint16_t GPIO_Pin; 
    16                     GPIOSpeed_TypeDef GPIO_Speed;  
    17                     GPIOMode_TypeDef GPIO_Mode;    
    18                 }GPIO_InitTypeDef;
    19     三个函数:
    20     1、GPIO_Init(GPIOB,&GPIO_InitTypeDef);
    21     2、GPIO_ResetBits(GPIOB,GPIO_Pin_5);  这里的意思是给端口5高电平
    22     3、GPIO_SetBits(GPIOB,GPIO_Pin_5);   把GPIO引脚设置低电平(红LED灯亮)
    23     */
    24     
    25 //驱动程序:GPIO初始化设置
    26 int led_gpio_init_()
    27 {    
    28     GPIO_InitTypeDef GPIO_InitTypeDef;//定义一个结构体变量
    29     
    30     /*使能GPIO的rcc时钟*/
    31     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    32     
    33     /*配置GPIO引脚*/
    34     GPIO_InitTypeDef.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_0|GPIO_Pin_1;//使用操作符可以一次使用多个引脚,端口0是绿色  1是蓝色    5是红色
    35     GPIO_InitTypeDef.GPIO_Speed  = GPIO_Speed_50MHz;//设置输出速率50MHz
    36     GPIO_InitTypeDef.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
    37     /*初始化*/
    38     GPIO_Init(GPIOB,&GPIO_InitTypeDef);//参数一选择GPIO外设(ABCDE)参数二指向GPIO_InitTypeDef的指针
    39 }
    40 
    41 //延时函数
    42 void delay()
    43 {
    44  int i = 10000000;
    45     while(i--);
    46 }
    47 
    48 //主函数
    49 int main(void)
    50 {
    51     led_gpio_init_();//调用GIPO初始化函数
    52     
    53     /*循环给高低电平实现闪烁*/
    54     while(1)
    55     {
    56         GPIO_ResetBits(GPIOB,GPIO_Pin_5);
    57         delay();
    58         GPIO_SetBits(GPIOB,GPIO_Pin_5);
    59         delay();
    60         
    61         GPIO_ResetBits(GPIOB,GPIO_Pin_0);
    62         delay();
    63         GPIO_SetBits(GPIOB,GPIO_Pin_0);
    64         delay();
    65         
    66         GPIO_ResetBits(GPIOB,GPIO_Pin_1);
    67         delay();
    68         GPIO_SetBits(GPIOB,GPIO_Pin_1);
    69         delay();
    70     }
    71 }

    下面赋三个上面用到的函数,原处截图,出之STM32f10固件库使用手册中文版手册(这是个好东西,要懂得利用!!!以后开发都是根据这个来编程写函数的)

     

     

     

     

     

    最后要烧到开发板的,烧程序的软件过程

     

  • 相关阅读:
    Objective C
    MySQL 存储过程,游标,临时表创建
    List connected users–similar to task manager
    游戏视频编辑
    游戏音频编辑
    UE4 AI BehaviorTree 动画播放完成通知机制
    UE4 AI BehaviorTree 各个节点执行顺序总结
    Holographic Remoting
    Hololens 手势事件执行顺序
    Hololens 硬件细节 Hardware Detail
  • 原文地址:https://www.cnblogs.com/kinson/p/7609825.html
Copyright © 2011-2022 走看看