STM32CubeMX学习使用(LL库定时器配置及如何使用HAL库)

LL库定时器配置

cube配置与hal一样

 

LL库的封装没有HAL库的那么好,需要深入的看下参考手册

 

定时器启动及中断函数

voiduser_tim17Init()
{
    LL_TIM_EnableIT_UPDATE(TIM17);

    LL_TIM_EnableCounter(TIM17);
}

voiduser_tim17IRQ()

{
    if(LL_TIM_IsActiveFlag_UPDATE(TIM17))

    {
        LL_TIM_ClearFlag_UPDATE(TIM17); 
    }   
}

 

定时器PWM捕获功能

voiduser_dht11Init()
{
    LL_TIM_EnableIT_CC1(TIM3);
    LL_TIM_EnableIT_UPDATE(TIM17);
    LL_TIM_ClearFlag_CC1(TIM3); 
    LL_TIM_SetCounter(TIM3,0);
    LL_TIM_CC_EnableChannel(TIM3,LL_TIM_CHANNEL_CH1);   
    LL_TIM_EnableCounter(TIM3);
}

voiduser_tim3IRQ()
{
    if(LL_TIM_IsActiveFlag_CC1(TIM3))       //捕获到了下降沿
    {            
        valueBuf[valueCount]=LL_TIM_OC_GetCompareCH1(TIM3);
            LL_TIM_ClearFlag_CC1(TIM3);         
            valueCount++; 
            LL_TIM_SetCounter(TIM3,0);              
    }
}

如何使用HAL库

下图是表述了用户层和HAL_Driver的交互过程,基本上从用户APP调用HAL_Driver APIs并且视情况当使用DMA或者专用中断时通过中断处理程序调用HAL_Driver APIs

使用DMA或中断时,中断模式通过回调函数来完成用户定义流程(实时处理),DMA中断模式使用相同的调用流程

                                    STM32CubeMX学习使用(LL库定时器配置及如何使用HAL库)_第1张图片

二 具体使用过程

1 HAL(硬件抽象层) 初始化


 HAL IO 操作流程 -- HAL functions 与内部数据处理类似发送/接收,读/写. 提供三种处理模型

a Polling mode 查询模式,HAL函数在数据处理完成(阻塞)后返回处理状态(ok or err),可以通过HAL_PPP_GetState()获取具体错误信息b Interrupt mode 中断模式,启动数据处理并开启了相应中断后返回处理状态;该模式下,驱动程序声明了4个函数


HAL_PPP_Process_IT(): 启动中断处理,一般在用户文件中


HAL_PPP_IRQHandler(): 全局外设中断,一般在stm32f0xx_it.c中



__weak HAL_PPP_ProcessCpltCallback (): 有关处理结束回调函数



__weak HAL_PPP_ProcessErrorCallback(): 有关错误回调处理


__weak 弱声明,用户可以在应用中重新实现

                            STM32CubeMX学习使用(LL库定时器配置及如何使用HAL库)_第2张图片

 c DMA mode 使能相应的DMA中断并启动DMA处理数据后返回处理状态;操作结束后调用回调函数通知用户处理完成;该模式下,驱动程序声明了4个函数:


HAL_PPP_Process_DMA():启动DMA过程,一般在用户文件中


HAL_PPP_DMA_IRQHandler():外设使用的DMA中断,一般在stm32f0xx_it.c中


__weak HAL_PPP_ProcessCpltCallback():有关过程结束回调函数


__weak HAL_PPP_ErrorCpltCallback():过程错误回调函数


如果使用DMA模式,通常在HAL_PPP_MspInit()回调函数中执行DMA初始化

                      STM32CubeMX学习使用(LL库定时器配置及如何使用HAL库)_第3张图片

 

 

 

微信搜索“炫色Allen” 或者扫描下面二维码、关注,获取更多干货!

STM32CubeMX学习使用(LL库定时器配置及如何使用HAL库)_第4张图片

你可能感兴趣的:(STM32深入剖析实践)