*/voidbsp_Init(void){/* 配置MPU */MPU_Config();/* 使能L1 Cache */CPU_CACHE_Enable();/* STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟: - 调用函数HAL_InitTick,初始化滴答时钟中断1ms。 - 设置NVIV优先级分组为4。 */HAL_Init();/* 配置系统时钟到400MHz - 切换使用HSE。
HAL_MPU_ConfigRegion(&MPU_InitStruct); /*使能 MPU */ HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); } /* *** * 函数名: CPU_CACHE_Enable * 功能说明: 使能L1 Cache * 形 参: 无 * 返回值: 无 ***
static void CPU_CACHE_Enable(void) { /* 使能 I-Cache */ SCB_EnableICache(); /* 使能 D-Cache */ SCB_EnableDCache(); } 每10ms调用一次蜂鸣器处理: 蜂鸣器处理是在滴答定时器中断里面实现,每10ms执行一次检测。 /* *** * 函数名: bsp_RunPer10ms * 功能说明: 该函数每隔10ms被Systick中断调...
* 函数名: CPU_CACHE_Enable * 功能说明: 使能L1 Cache * 形 参: 无 * 返回值: 无 *** */ static void CPU_CACHE_Enable(void) { /* 使能 I-Cache */ SCB_EnableICache(); /* 使能 D-Cache */ SCB_EnableDCache(); } 定时器中断服务程序: 定时器6的中断服务程序如下,主要实现了LED4翻转和...
CPU_CACHE_Enable(); /* STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟: - 调用函数HAL_InitTick,初始化滴答时钟中断1ms。 - 设置NVIV优先级分组为4。 */ HAL_Init(); /* 配置系统时钟到400MHz - 切换使用HSE。 - 此函数会更新全局变量SystemCoreClock,并重新配置HAL_InitTick。
*/voidbsp_Init(void){/* 配置MPU */MPU_Config();/* 使能L1 Cache */CPU_CACHE_Enable();/* STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟: - 调用函数HAL_InitTick,初始化滴答时钟中断1ms。 - 设置NVIV优先级分组为4。
{/*配置MPU*/MPU_Config();/*使能L1 Cache*/CPU_CACHE_Enable();/*STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟: - 调用函数HAL_InitTick,初始化滴答时钟中断1ms。 - 设置NVIV优先级分组为4。*/HAL_Init();/*配置系统时钟到400MHz ...
CPU_CACHE_Enable(); /* STM32H7xx HAL 库初始化,此时系统用的还是H7自带的64MHz,HSI时钟: - 调用函数HAL_InitTick,初始化滴答时钟中断1ms。 - 设置NVIV优先级分组为4。 */ HAL_Init(); /* 配置系统时钟到400MHz - 切换使用HSE。 - 此函数会更新全局变量SystemCoreClock,并重新配置HAL_InitTick。 *...
3. * 函数名: bsp_RCC_TIM_Enable 4. * 功能说明: 使能TIM RCC 时钟 5. * 形 参: 无 6. * 返回值: 无 7. *** 8.*/9.voidbsp_RCC_TIM_Enable(TIM_TypeDef*TIMx)10. {11.if(TIMx ==TIM1) __HAL_RCC_TIM1_CLK_ENABLE();12.elseif(TIMx ==TIM2) __HAL_...
程序完全按照代码顺序执行,CPU需要等待当前的加载/存储指令执行完毕后才执行下一条指令。这样会导致性能下降。 23.5 MPU的寄存器和对应的库参数 关于MPU的寄存器介绍在STM32H7的编程手册有专门的讲解说明,我们这里重点讲解寄存器MPU_RASR和控制寄存器,此寄存器的定义如下: ...