在进行资产设备研发时,HC32L110定时器初始化
Posted 瑞奇Ricky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在进行资产设备研发时,HC32L110定时器初始化相关的知识,希望对你有一定的参考价值。
近期笔者在进行资产设备研发,该设备除了基本的定位功能外,为了更好地对客户的资产进行保护,还具有拆箱报警、温湿度监测灯功能。
比如对比较贵重的货物进行快递运输,由于担心货物在运输时遭遇偷窃或者因为震动而造成损坏,在这种情况下,就可以通过这款设备,来解决用户的问题,具有拆箱报警功能的资产监控设备,如果在运输途中,设备通过光感监测,判断遭到拆箱。如果货物遭到水浸或者火灾,通过温湿度监测的作用,用户也可在远程第一时间了解到货物的状态。
在研发过程中,该设备进行了多次的监测,需要进行定时器初始化,在这儿介绍下HC32L110的定时器初始化:
//1ms定时
//time = (0x10000-ARR)/(PCLK /16)
void Tim2_Init(void)
{
stc_bt_config_t stcBtConfig;
Clk_SetPeripheralGate(ClkPeripheralBt,TRUE); //使能定时器时钟
EnableNvic(TIM2_IRQn, 3, TRUE); //设置TIMER2中断
Bt_EnableIrq(TIM0); //允许TIMER2中断
stcBtConfig.pfnTim0Cb = Timer2_IRQHandle; //Timer2中断服务函数
stcBtConfig.enGateP = BtPositive; //门控极性设置
stcBtConfig.enGate = BtGateDisable; //无门控
stcBtConfig.enPRS = BtPCLKDiv8; //TIMER2时钟为PCLK 16分频
stcBtConfig.enTog = BtTogDisable; //禁止翻转输出
stcBtConfig.enCT = BtTimer; //工作在定时模式
stcBtConfig.enMD = BtMode2; //工作在模式2 16位自动重载定时器
Bt_Init(TIM2, &stcBtConfig); //TIMER2初始化
Bt_ARRSet(TIM0, 0xFE0C); //设置TIMER0重载值
Bt_Cnt16Set(TIM0, 0xFE0C); //设置TIMER0计数值
}
void Timer2_IRQHandle(void)
{
if(Bt_GetIntFlag(TIM2)== TRUE)
{
Usart_TimeOut();
Led_Task();
Bt_ClearIntFlag(TIM2);
}
}
以上是关于在进行资产设备研发时,HC32L110定时器初始化的主要内容,如果未能解决你的问题,请参考以下文章
STM32CubeMX | 39-使用硬件定时器获取超声波模块数据(HC-SR04)