• <tr id='WafE2T'><strong id='WafE2T'></strong><small id='WafE2T'></small><button id='WafE2T'></button><li id='WafE2T'><noscript id='WafE2T'><big id='WafE2T'></big><dt id='WafE2T'></dt></noscript></li></tr><ol id='WafE2T'><option id='WafE2T'><table id='WafE2T'><blockquote id='WafE2T'><tbody id='WafE2T'></tbody></blockquote></table></option></ol><u id='WafE2T'></u><kbd id='WafE2T'><kbd id='WafE2T'></kbd></kbd>

    <code id='WafE2T'><strong id='WafE2T'></strong></code>

    <fieldset id='WafE2T'></fieldset>
          <span id='WafE2T'></span>

              <ins id='WafE2T'></ins>
              <acronym id='WafE2T'><em id='WafE2T'></em><td id='WafE2T'><div id='WafE2T'></div></td></acronym><address id='WafE2T'><big id='WafE2T'><big id='WafE2T'></big><legend id='WafE2T'></legend></big></address>

              <i id='WafE2T'><div id='WafE2T'><ins id='WafE2T'></ins></div></i>
              <i id='WafE2T'></i>
            1. <dl id='WafE2T'></dl>
              1. <blockquote id='WafE2T'><q id='WafE2T'><noscript id='WafE2T'></noscript><dt id='WafE2T'></dt></q></blockquote><noframes id='WafE2T'><i id='WafE2T'></i>

                STM32开发板按☉键控制实验

                文章来源:计算机系发布时间:2020-06-15浏览次数:62

                芯片:STM32F407ZG76

                1MB flash

                 

                安装keil5

                创建库☆函数模板

                【1】 创建存放库函数模板的文件夹。名称:库函数模板

                【2】 在库函数模板文件夹中创建文件夹User,存放用户程∞序

                【3】 创建文件夹Obj

                【4】 创建文件夹Libraries

                【5】 Libraries下创建文件夹CMSIS

                【6】 复制STM32F4xx驱动到Libraries

                实验说明

                通过按键控制LED灯的开关

                实验环境

                硬件

                STM32F407-PZ6808L开发

                STM32仿真

                软件

                Winddows7 64操作系统 内存8GB

                Keil5

                安装后需要添加Keil.STM32F4xx_DFP.2.7.0.pack

                Stm32CubeMx

                安装后将STM32Cube_FW_F4_V1.13.0文件夹复制到C: \ Users \ Administrator \ STM32Cube \ Repository文件夹

                文档

                STM32F407-PZ6808L开发板原理图.pdf

                实验现象

                开发板上的K_RIGHT键D2亮,按K_DOWN键D2灯灭。

                实验步骤

                1. 打开STM32F407-PZ6808L开发原理图

                找到LED灯模块

                 

                2链接引脚LED2

                LED2 低电平灯亮 高㊣ 电平灯灭

                找到LED2 在STM32F407ZGT6核心板的链接引脚

                PDF阅读器♀上搜索


                找到LED2引脚


                引脚PF10


                 

                查找按键K_RIGHT和K_DOWN在核心板上◆的引脚

                查找按键模块

                分别对应K1K2

                然后在核心板上查找K1和K2的︼引脚名称

                 

                 

                名称PE2和PE3

                 

                分析

                按下K1则D2灯亮,按下K2则D2灯灭。

                K1K2按下后,引脚是低电平判断PE2PE3引脚的信◆号来确定K1K2是否按下若为低电平,在为按下,若为高电◢平,则为放开。

                 

                PE2和PE2引脚为输入类型。

                PF10引脚为输出类型

                 

                2. 打开STM32CubeMX建立工程

                (1) 置类型STM32F407ZGTx LQFP144

                (2) 设置引脚类型

                Peripherals->SYS->Debug设置为Serial Wire(仿真使用)

                注意:一定设置,否则以后不能使用仿真器。

                 


                找到PF10,由于是控制LED灯,设置为输出类型(GPIO_Output),同理,设置PE2和PE3类型,为GPIO_Input


                (3) PE2PE3mode进行设置

                依次选择Configuration——GPIO 


                 

                GPIO Pull-up/Pull-down设置Pull-up

                4)设置工程

                Project Settings->Project Name设置为KEY

                 

                Toolchain /IDE 设置为MDK-ARM V5

                 

                通过向导,自动生成初始化代码,然后通过Keil5打开工程

                 

                3. 先编译工程

                main.c中添加代码

                uint8_t Check_Key()

                {

                if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_2)==GPIO_PIN_RESET || HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3)==GPIO_PIN_RESET)

                {

                HAL_Delay(10);

                if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_2)==GPIO_PIN_RESET)

                {

                return 1;

                }

                if(HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_3)==GPIO_PIN_RESET)

                {

                return 2;

                }

                  

                }

                return 0;

                }

                 

                 

                main函数

                uint8_t key;

                 

                key=Check_Key();

                switch(key)

                {

                case 1:

                HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET);

                break;

                case 2:

                HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);

                break;

                }

                编译

                 

                4. 链接仿真器仿真调试↘

                 

                然后按开发板上的复位键测试。

                实验文档.docx