当前位置:   article > 正文

实验1 stm32控制led灯闪烁_stm32实现led灯闪烁实验总结

stm32实现led灯闪烁实验总结

1.LED灯   长腿是正极,短脚是负极

2.有源蜂鸣器/无源蜂鸣器:有源蜂鸣器(低电平触发)无源蜂鸣器(高电平触发)

3.将user,library,start,system文件夹复制到我们要做的程序文件夹下

4.回到keil。点击三个箱子

5.建立一个新的文件夹,并在文件夹中添加入刚刚在项目文件夹下新建的所有内容

按住Ctrl将后缀是.h或者.c的文件选中并add添加进start文件夹下

library跟user文件夹跟上面一样选择所有文件,并Ctrl+A选择所有文件并添加进两个文件夹中。

6.点击魔术棒

在define栏写下USE_STDPERIPH_DRIVER

7.参考pwlink文档设置debug。

8.点击右键,添加头文件

9.写上主函数

int main(void)
{
    while(1)
    {
       
    }
}

10.操作stm32GPIO口需要三个步骤

    1.使用RCC开启GPIO时钟

          点击library,选择rcc.h文件

 拉到最下面找到这三个函数

(1)RCC AHB 外设时钟控制

void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);

(2)RCC APB外设时钟控制(APB1/APB2)
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);

点击右键跳转到.c的函数定义

点击GPIO,h拉到最下面

      2.使用GPIO_Init函数初始化GPIO

  (1)先写初始化 GPIO_Init(GPIOA,       );然后右键跳转定义

  (2) 复制结构体类型GPIO_InitTypeDef,然后定义一个结构体GPIO_InitStructure;

    GPIO_InitTypeDef GPIO_InitStructure;

  (3)然后复制GPIO_InitStructure加点.引出三个结构体后续名
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  

     然后右键跳转定义

    (4)然后将结构体写入初始化,GPIOA后

       GPIO_Init(GPIOA,&GPIO_InitStructure);

选中后按Ctrl+F搜索

        3.使用输出或者输入函数控制GPIO口

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStructure);
    
    
    
    while(1)
    {
       GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
         Delay_ms(500);
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
         Delay_ms(500);
    }
}
 

  GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//先写GPIOA,B,C//后写第几号引脚//最后写是高电平还是低电平。reset是低电平,set是高电平,因为电路是灯泡的正极是连接3.3v的点,负极连接stm32端口号引脚,所以置低电平能导通,高电平会熄灭。

delay函数就是延迟函数

警告:如果出现这个就是这句函数GPIO_InitTypeDef GPIO_InitStructure;不支持放在中间

只要将GPIO_InitTypeDef GPIO_InitStructure;放置在最前面就可以解除了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/565777
推荐阅读
相关标签
  

闽ICP备14008679号