这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
| icore3_arm_hal_8 [2020/04/11 17:04] fmj 创建 | icore3_arm_hal_8 [2022/03/18 15:03] (当前版本) sean | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| |技术支持电话|**0379-69926675-801**  ||| | |技术支持电话|**0379-69926675-801**  ||| | ||
| |技术支持邮件|Gingko@vip.163.com  ||| | |技术支持邮件|Gingko@vip.163.com  ||| | ||
| - | |技术论坛|http://www.eeschool.org  ||| | ||
| ^ 版本  ^ 日期  ^ 作者  ^ 修改内容  ^ | ^ 版本  ^ 日期  ^ 作者  ^ 修改内容  ^ | ||
| | V1.0 | 2020-04-11  | gingko  | 初次建立  | | | V1.0 | 2020-04-11  | gingko  | 初次建立  | | ||
| 行 10: | 行 9: | ||
| 1. 新建工程:在主界面选择File-->New Project  或者直接点击ACCEE TO MCU SELECTOR  | 1. 新建工程:在主界面选择File-->New Project  或者直接点击ACCEE TO MCU SELECTOR  | ||
| - | {{ :icore3:icore3_cube_8_1.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_1.png?direct | }} | 
| 2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置 | 2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置 | ||
| 在搜索栏的下面,提供的各种查找方式,可以选择芯片内核、型号等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。 | 在搜索栏的下面,提供的各种查找方式,可以选择芯片内核、型号等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。 | ||
| - | {{ :icore3:icore3_cube_8_2.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_2.png?direct | }} | 
| 3. 配置RCC,使用外部时钟源 | 3. 配置RCC,使用外部时钟源 | ||
| - | {{ :icore3:icore3_cube_8_3.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_3.png?direct | }} | 
| 4. 配置调试引脚 | 4. 配置调试引脚 | ||
| - | {{ :icore3:icore3_cube_8_4.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_4.png?direct | }} | 
| 5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output | 5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output | ||
| - | {{ :icore3:icore3_cube_8_5.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_5.png?direct | }} | 
| 6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input | 6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input | ||
| - | {{ :icore3:icore3_cube_8_6.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_6.png?direct | }} | 
| 7. 引脚模式配置 | 7. 引脚模式配置 | ||
| * 三色LED引脚配置 | * 三色LED引脚配置 | ||
| - | {{ :icore3:icore3_cube_8_7.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_7.png?direct | }} | 
| * ARM_KEY引脚配置,GPIO_EXIT有6种模式,这里选择下降沿触发外部中断。 | * ARM_KEY引脚配置,GPIO_EXIT有6种模式,这里选择下降沿触发外部中断。 | ||
| - | {{ :icore3:icore3_cube_8_8.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_8.png?direct | }} | 
| 8. 配置WWDG | 8. 配置WWDG | ||
| - | {{ :icore3:icore3_cube_8_9.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_9.png?direct | }} | 
| 9. 时钟源设置,选择外部高速时钟源,配置为最大主频 | 9. 时钟源设置,选择外部高速时钟源,配置为最大主频 | ||
| - | {{ :icore3:icore3_cube_8_10.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_10.png?direct | }} | 
| 10. 工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可  IDE我们使用的是 MDK5 | 10. 工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可  IDE我们使用的是 MDK5 | ||
| - | {{ :icore3:icore3_cube_8_11.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_11.png?direct | }} | 
| 11. 点击Code Generator,进行进一步配置 | 11. 点击Code Generator,进行进一步配置 | ||
| - | {{ :icore3:icore3_cube_8_12.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_12.png?direct | }} | 
| * **Copy all used libraries into the project folder** | * **Copy all used libraries into the project folder** | ||
| * 将HAL库的所有.C和.H都复制到所建工程中 | * 将HAL库的所有.C和.H都复制到所建工程中 | ||
| 行 50: | 行 49: | ||
| 12. 然后点击GENERATE CODE 创建工程。创建成功,打开工程。 | 12. 然后点击GENERATE CODE 创建工程。创建成功,打开工程。 | ||
| - | {{ :icore3:icore3_cube_8_13.png?direct&900 | }} | + | {{ :icore3:icore3_cube_8_13.png?direct | }} | 
| ===== 实验八:WWDG看门狗实验——复位ARM ===== | ===== 实验八:WWDG看门狗实验——复位ARM ===== | ||
| 行 73: | 行 72: | ||
| === 2、WWDG看门狗窗口说明 === | === 2、WWDG看门狗窗口说明 === | ||
| * WWDG看门狗在使用时,除了使能时钟和设置预分频值外,还需要设置窗口和计数器初值。在芯片内部,WWDG看门狗计数器是一个7位二进制递减计数器,当它从0x40翻转到0x3F时,系统会启动复位。只有计数器在窗口值和0x40之间的时候,喂狗才是有效的。如图所示: | * WWDG看门狗在使用时,除了使能时钟和设置预分频值外,还需要设置窗口和计数器初值。在芯片内部,WWDG看门狗计数器是一个7位二进制递减计数器,当它从0x40翻转到0x3F时,系统会启动复位。只有计数器在窗口值和0x40之间的时候,喂狗才是有效的。如图所示: | ||
| - | {{ :icore3:icore3_arm_hal_8_1.png?direct&700 |}} | + | {{ :icore3:icore3_arm_hal_8_1.png?direct |}} | 
| * 本次实验使用的是常开带复位按键,当按键没有按下时,ARM芯片的ARM_KEY引脚读取到的值是高电平,按键按下后读取到的值为低电平,按键没有按下是正常喂狗,当按键按下后停止喂狗。 | * 本次实验使用的是常开带复位按键,当按键没有按下时,ARM芯片的ARM_KEY引脚读取到的值是高电平,按键按下后读取到的值为低电平,按键没有按下是正常喂狗,当按键按下后停止喂狗。 | ||
| ==== 四、 实验程序 ==== | ==== 四、 实验程序 ==== | ||
| 行 102: | 行 101: | ||
| * 喂狗函数: | * 喂狗函数: | ||
| <code c> | <code c> | ||
| - | HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg) | + | HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg) | 
| </code> | </code> | ||
| * 看门狗中断处理函数: | * 看门狗中断处理函数: | ||