用户工具

站点工具


icore3l_6

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore3l_6 [2020/11/06 17:35]
zgf
icore3l_6 [2020/11/11 10:57] (当前版本)
zgf
行 46: 行 46:
 \\ \\
 \\ \\
-==== 实验六:SYSTICK定时器实验——定时闪烁LED ==== +===== 实验六:SYSTICK定时器实验——定时闪烁LED ​===== 
-=== 一、实验目的与意义 ===+==== 一、实验目的与意义 ​====
   - 了解STM32 GPIO结构   - 了解STM32 GPIO结构
   - 了解STM32 GPIO 特征   - 了解STM32 GPIO 特征
行 53: 行 53:
   - 掌握STM32 HAL库中SYSTICK属性的配置方法   - 掌握STM32 HAL库中SYSTICK属性的配置方法
   - 掌握KEILMDK 集成开发环境使用方法   - 掌握KEILMDK 集成开发环境使用方法
-=== 二、实验设备及平台 ===+==== 二、实验设备及平台 ​====
   - iCore3L 双核心板   - iCore3L 双核心板
   - JLINK(或相同功能)仿真器   - JLINK(或相同功能)仿真器
行 60: 行 60:
   - STM32CubeMX开发平台   - STM32CubeMX开发平台
   - 装有WIN XP(及更高版本)系统的计算机   - 装有WIN XP(及更高版本)系统的计算机
-=== 三、实验原理 === +==== 三、实验原理 ​==== 
-== 1、时钟系统简介 == +=== 1、时钟系统简介 ​=== 
 **(1)STM32时钟源分以下五类:** **(1)STM32时钟源分以下五类:**
   * 内部高速时钟(HSI):RC振荡器,精度不高。   * 内部高速时钟(HSI):RC振荡器,精度不高。
行 69: 行 69:
   * 锁相环倍环输出(PLL):其时钟输入源可选择为HSI/​2、HSE或者HSE/​2。倍频倍数可调,但是其最大输出频率受限数值因芯片型号而异。   * 锁相环倍环输出(PLL):其时钟输入源可选择为HSI/​2、HSE或者HSE/​2。倍频倍数可调,但是其最大输出频率受限数值因芯片型号而异。
 **(2)系统时钟SYSCLK可来源于:HSI振荡器时钟、HSE振荡器时钟、PLL时钟。** **(2)系统时钟SYSCLK可来源于:HSI振荡器时钟、HSE振荡器时钟、PLL时钟。**
-== 2、SYSTICK简介 ==+=== 2、SYSTICK简介 ​===
   * 在STM32中,SysTick是内核Cortex-M4中的一个24位的递减计数器,也称系统嘀答定时器。SysTick的最大使命,就是定期地产生异常请求,作为系统的时基。操作系统需要这种“滴答”来推动任务和时间的管理。   * 在STM32中,SysTick是内核Cortex-M4中的一个24位的递减计数器,也称系统嘀答定时器。SysTick的最大使命,就是定期地产生异常请求,作为系统的时基。操作系统需要这种“滴答”来推动任务和时间的管理。
   * SysTick在设定初值并开启后,每经一个系统时钟周期,计数值减1,计数到0时,将从重载寄存器中自动重新装载定时初值并继续计数,同时内部的COUNTFLAG标志位置1,触发中断(中断允许情况下),中断响应属于NVIC异常,异常号为15,Systick中断优先级可设置。   * SysTick在设定初值并开启后,每经一个系统时钟周期,计数值减1,计数到0时,将从重载寄存器中自动重新装载定时初值并继续计数,同时内部的COUNTFLAG标志位置1,触发中断(中断允许情况下),中断响应属于NVIC异常,异常号为15,Systick中断优先级可设置。
-== 3、SYTICK寄存器控制 ==+=== 3、SYTICK寄存器控制 ​===
 SysTick定时器有4个寄存器,分别为: SysTick定时器有4个寄存器,分别为:
   * SYST_CSR ​     SysTick控制及状态寄存器   * SYST_CSR ​     SysTick控制及状态寄存器
行 92: 行 92:
 |23:0|RELOAD|R/​W|0|当倒数计数到0时,加载到SYST_CVR寄存器的值| |23:0|RELOAD|R/​W|0|当倒数计数到0时,加载到SYST_CVR寄存器的值|
   * RELOAD值可以是0x00000001 - 0x00FFFFFF范围内的任何值。起始值可以为0,但是没有效果,因为SysTick异常请求和COUNTFLAG在从1到0计数时才被激活。重新装载值是根据其使用情况计算的。例如,要生成周期为N个处理器时钟周期的多次触发定时器,可以配置RELOAD值为N-1。如果每100个时钟脉冲需要SysTick中断,则将RELOAD设置为99。   * RELOAD值可以是0x00000001 - 0x00FFFFFF范围内的任何值。起始值可以为0,但是没有效果,因为SysTick异常请求和COUNTFLAG在从1到0计数时才被激活。重新装载值是根据其使用情况计算的。例如,要生成周期为N个处理器时钟周期的多次触发定时器,可以配置RELOAD值为N-1。如果每100个时钟脉冲需要SysTick中断,则将RELOAD设置为99。
 +
 **(3)SYST_CVR当前数值寄存器** **(3)SYST_CVR当前数值寄存器**
 {{ :​icore3l:​icore3l_arm_hal_6_3.png?​direct |}} {{ :​icore3l:​icore3l_arm_hal_6_3.png?​direct |}}
行 178: 行 179:
 } }
 </​code>​ </​code>​
-==== 五、实验步骤 ====+==== 五、实验步骤 ​=====
   - 把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连);   - 把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连);
   - 把iCore3L通过Micro USB线与计算机相连,为iCore3L供电;   - 把iCore3L通过Micro USB线与计算机相连,为iCore3L供电;
行 185: 行 186:
   - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。   - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。
 ==== 六、实验现象 ==== ==== 六、实验现象 ====
-每隔一秒,LED灯亮灭状态交替一次。+每隔一秒,红色LED灯亮灭状态交替一次。
  
icore3l_6.1604655306.txt.gz · 最后更改: 2020/11/06 17:35 由 zgf