用户工具

站点工具


icore3_arm_hal_3

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
icore3_arm_hal_3 [2020/01/16 16:21]
zgf
icore3_arm_hal_3 [2020/01/16 18:40]
zgf [二、 实验设备及平台]
行 1: 行 1:
 +|**银杏科技有限公司旗下技术文档发布平台** ​ ||||
 +|技术支持电话|**0379-69926675-801** ​ |||
 +|技术支持邮件|Gingko@vip.163.com ​ |||
 +|技术论坛|http://​www.eeschool.org ​ |||
 +^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 +|  V1.0  |  2020-1-16 ​ |  gingko ​ |  初次建立 ​ |
 +
 ===== STM32CubeMX教程三——GPIO输入实验 ===== ===== STM32CubeMX教程三——GPIO输入实验 =====
  
行 57: 行 64:
 ==== 二、 实验设备及平台 ==== ==== 二、 实验设备及平台 ====
  
-  - iCore3 双核心板 +  - iCore3 双核心板[[https://​item.taobao.com/​item.htm?​spm=a1z10.1-c.w4024-251734887.3.5923532fXD2RIN&​id=524229438677&​scene=taobao_shop|点击购买]] 
-  - JLINK(或相同功能)仿真器+  - JLINK(或相同功能)仿真器[[ 
 +https://​item.taobao.com/​item.htm?​spm=a1z10.5-c.w4002-251734908.13.20822b61MmPeNN&​id=554869837940|点击购买]]
   - Micro USB线缆   - Micro USB线缆
   - Keil MDK 开发平台   - Keil MDK 开发平台
行 79: 行 87:
  
 1. 主函数 1. 主函数
- +<code c> 
 +int main(void) ​  
 +{     
 +    static int led_work_status = 0;     //​三色LED灯工作状态  
 +static int key_status = KEY_UP; ​        //​按键松开状态 ​    
 +HAL_Init(); ​                            //​重置所有外围设备,初始化Flash接口和Systick。 
 +    SystemClock_Config(); ​              //​配置系统时钟 
 +    MX_GPIO_Init(); ​                    //​初始化所有已配置的外围设备 
 +  LED_RED_ON; ​                    //​初始化LED状态 ​     
 +  while (1)                      //​按键按一次切换一次LED状态  
 +  {   
 +        if(ARM_KEY_STATE == KEY_UP)key_status = KEY_UP;  
 +        if(key_status == KEY_UP){ ​  
 +           ​if(ARM_KEY_STATE == KEY_DOWN){ ​  
 +                HAL_Delay(20); ​                               //​按键消抖 ​  
 +              if(ARM_KEY_STATE == KEY_DOWN){ ​  
 +                    key_status = KEY_DOWN; ​  
 +                    led_work_status += 1;   
 +                  if(led_work_status > 2)led_work_status = 0;                       
 +                   ​switch(led_work_status){ ​                  //​操作LED 
 +                        case 0:   
 +                            LED_RED_ON; ​  
 +                            LED_GREEN_OFF; ​  
 +                            LED_BLUE_OFF; ​  
 +                            break; ​  
 +                        case 1:   
 +                            LED_RED_OFF; ​  
 +                            LED_GREEN_ON; ​  
 +                            LED_BLUE_OFF; ​  
 +                            break; ​  
 +                        case 2:   
 +                            LED_RED_OFF; ​  
 +                            LED_GREEN_OFF; ​  
 +                            LED_BLUE_ON; ​  
 +                            break; ​   
 +                        default: ​  
 +                           ​break; ​  
 +                    }                  
 +                }   
 +            }   
 +        }     
 +    }   
 +
 +</​code>​
    
 2. GPIIO初始化 2. GPIIO初始化
 以下是按键的GPIO初始化程序。 以下是按键的GPIO初始化程序。
- +<code c> 
 +  GPIO_InitStruct.Pin = ARM_KEY_Pin; ​       //​设置连接按键的IO端口 
 + 
 + ​GPIO_InitStruct.Mode = GPIO_MODE_INPUT; ​   //​设置端口为输入模式 
 + 
 + ​GPIO_InitStruct.Pull = GPIO_PULLUP; ​       //​设置端口为上拉输入 
 + 
 + ​HAL_GPIO_Init(ARM_KEY_GPIO_Port,​ &​GPIO_InitStruct);​ 
 +</​code>​
 ==== 五、 实验步骤 ==== ==== 五、 实验步骤 ====
  
icore3_arm_hal_3.txt · 最后更改: 2022/03/18 15:00 由 sean