用户工具

站点工具


icore3_arm_hal_3

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore3_arm_hal_3 [2020/01/16 16:26]
zgf [四、 实验程序]
icore3_arm_hal_3 [2022/03/18 15:00] (当前版本)
sean
行 1: 行 1:
 +|**银杏科技有限公司旗下技术文档发布平台** ​ ||||
 +|技术支持电话|**0379-69926675-801** ​ |||
 +|技术支持邮件|Gingko@vip.163.com ​ |||
 +^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 +|  V1.0  |  2020-1-16 ​ |  gingko ​ |  初次建立 ​ |
 +
 ===== STM32CubeMX教程三——GPIO输入实验 ===== ===== STM32CubeMX教程三——GPIO输入实验 =====
  
 1. 新建工程:在主界面选择File-->​New Project ​  ​或者直接点击ACCEE TO MCU SELECTOR ​ 1. 新建工程:在主界面选择File-->​New Project ​  ​或者直接点击ACCEE TO MCU SELECTOR ​
-{{ :​icore3:​icore3_cube_3_1.png?​direct |}} +{{ :​icore3:​icore3_cube_3_1.png?​direct&​900 ​|}} 
 2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置 2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置
 在搜索栏的下面,提供的各 ​ 种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。 在搜索栏的下面,提供的各 ​ 种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。
-{{ :​icore3:​icore3_cube_3_2.png?​direct |}} +{{ :​icore3:​icore3_cube_3_2.png?​direct&​900 ​|}} 
 3. 配置RCC,使用外部时钟源 3. 配置RCC,使用外部时钟源
-{{ :​icore3:​icore3_cube_3_3.png?​direct |}} +{{ :​icore3:​icore3_cube_3_3.png?​direct&​900 ​|}} 
 4. 配置调试引脚 4. 配置调试引脚
-{{ :​icore3:​icore3_cube_3_4.png?​direct |}} +{{ :​icore3:​icore3_cube_3_4.png?​direct&​900 ​|}} 
 5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output 5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output
-{{ :​icore3:​icore3_cube_3_5.png?​direct |}} +{{ :​icore3:​icore3_cube_3_5.png?​direct&​900 ​|}} 
 6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input 6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input
-{{ :​icore3:​icore3_cube_3_6.png?​direct |}} +{{ :​icore3:​icore3_cube_3_6.png?​direct&​900 ​|}} 
 7. 引脚模式配置 7. 引脚模式配置
   * 三色LED引脚配置   * 三色LED引脚配置
-{{ :​icore3:​icore3_cube_3_7.png?​direct |}} +{{ :​icore3:​icore3_cube_3_7.png?​direct&​900 ​|}} 
   * ARM_KEY引脚配置   * ARM_KEY引脚配置
-{{ :​icore3:​icore3_cube_3_8.png?​direct |}} +{{ :​icore3:​icore3_cube_3_8.png?​direct&​900 ​|}} 
 8. 时钟源设置,选择外部高速时钟源,配置为最大主频 8. 时钟源设置,选择外部高速时钟源,配置为最大主频
-{{ :​icore3:​icore3_cube_3_9.png?​direct |}} +{{ :​icore3:​icore3_cube_3_9.png?​direct&​900 ​|}} 
 9.  工程文件的设置,​ 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 ​ IDE我们使用的是 MDK5 9.  工程文件的设置,​ 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 ​ IDE我们使用的是 MDK5
-{{ :​icore3:​icore3_cube_3_10.png?​direct |}} +{{ :​icore3:​icore3_cube_3_10.png?​direct&​900 ​|}} 
 10. 点击Code Generator,进行进一步配置 10. 点击Code Generator,进行进一步配置
-{{ :​icore3:​icore3_cube_3_11.png?​direct |}} +{{ :​icore3:​icore3_cube_3_11.png?​direct&​900 ​|}} 
   * ** Copy all used libraries into the project folder**   * ** Copy all used libraries into the project folder**
   * 将HAL库的所有.C和.H都复制到所建工程中   * 将HAL库的所有.C和.H都复制到所建工程中
行 40: 行 46:
  
 11. 然后点击GENERATE CODE  创建工程。创建成功,打开工程。 11. 然后点击GENERATE CODE  创建工程。创建成功,打开工程。
-{{ :​icore3:​icore3_cube_3_12.png?​direct |}} +{{ :​icore3:​icore3_cube_3_12.png?​direct&​900 ​|}} 
  
  
行 57: 行 63:
 ==== 二、 实验设备及平台 ==== ==== 二、 实验设备及平台 ====
  
-  - 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 开发平台
行 82: 行 89:
 int main(void)  ​ int main(void)  ​
 {    ​ {    ​
-    static int led_work_status = 0;//​三色LED灯工作状态  +    static int led_work_status = 0;     ​//​三色LED灯工作状态  
-static int key_status = KEY_UP;//​按键松开状态 ​    +static int key_status = KEY_UP; ​        ​//​按键松开状态 ​    
-HAL_Init(); //​重置所有外围设备,初始化Flash接口和Systick。 +HAL_Init(); ​                            ​//​重置所有外围设备,初始化Flash接口和Systick。 
-    SystemClock_Config();​ //​配置系统时钟 +    SystemClock_Config(); ​              ​//​配置系统时钟 
-    MX_GPIO_Init(); ​       //​初始化所有已配置的外围设备 +    MX_GPIO_Init(); ​                    ​//​初始化所有已配置的外围设备 
-  LED_RED_ON; ​           //​初始化LED状态 ​     +  LED_RED_ON; ​                    ​//​初始化LED状态 ​     
-         ​//​按键按一次切换一次LED状态 ​ +  while (1)                      ​//​按键按一次切换一次LED状态 ​
-  while (1)  ​+
   {  ​   {  ​
         if(ARM_KEY_STATE == KEY_UP)key_status = KEY_UP; ​         if(ARM_KEY_STATE == KEY_UP)key_status = KEY_UP; ​
         if(key_status == KEY_UP){  ​         if(key_status == KEY_UP){  ​
            ​if(ARM_KEY_STATE == KEY_DOWN){  ​            ​if(ARM_KEY_STATE == KEY_DOWN){  ​
-                HAL_Delay(20); ​          ​//​按键消抖  ​+                HAL_Delay(20); ​                               //​按键消抖  ​
               if(ARM_KEY_STATE == KEY_DOWN){  ​               if(ARM_KEY_STATE == KEY_DOWN){  ​
                     key_status = KEY_DOWN;  ​                     key_status = KEY_DOWN;  ​
                     led_work_status += 1;  ​                     led_work_status += 1;  ​
                   if(led_work_status > 2)led_work_status = 0;                      ​                   if(led_work_status > 2)led_work_status = 0;                      ​
-                   ​switch(led_work_status){ ​  ​//操作LED+                   ​switch(led_work_status){ ​                  ​//操作LED
                         case 0:  ​                         case 0:  ​
                             LED_RED_ON;  ​                             LED_RED_ON;  ​
行 127: 行 133:
 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.1579163205.txt.gz · 最后更改: 2020/01/16 16:26 由 zgf