NULL
This commit is contained in:
146
user/MCU/lhl_lptimer.c
Executable file → Normal file
146
user/MCU/lhl_lptimer.c
Executable file → Normal file
@@ -1,11 +1,9 @@
|
||||
#include "../main/SystemInclude.h"
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief LPTimer <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD>
|
||||
* @note <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD> LPTIM_CLK_ENABLE_LSE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* Ԥ<><D4A4>Ƶϵ<C6B5><CFB5><EFBFBD>̶<EFBFBD>Ϊ DIV2<56><32>LSI <20><> LSE Ƶ<>ʳ<EFBFBD><CAB3><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
|
||||
* @param lptimer: LPTIM1 <20><> LPTIM2
|
||||
* @example <20>ڲ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ֱ<EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>
|
||||
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note <20><>ʼ<EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><EFBFBD>-ѡ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Դ
|
||||
* @param
|
||||
**/
|
||||
static void LPTIM_Init(LPTIM_TypeDef *lptimer)
|
||||
{
|
||||
@@ -15,27 +13,20 @@ static void LPTIM_Init(LPTIM_TypeDef *lptimer)
|
||||
LHL_RCC_LSEConfig(ENABLE);
|
||||
LPTIM_InitStructure.Clock = LPTIM_CLOCKSOURCE_LSE; // LPTIMʱ<4D><CAB1>ԴLSE
|
||||
#else
|
||||
LHL_RCC_LSEConfig(DISABLE);
|
||||
LHL_RCC_LSEConfig(DISABLE);
|
||||
LPTIM_InitStructure.Clock = LPTIM_CLOCKSOURCE_LSI; // LPTIMʱ<4D><CAB1>ԴLSI
|
||||
#endif
|
||||
LPTIM_InitStructure.Prescaler = LPTIM_PRESCALER_DIV2; // Ԥ<><D4A4>Ƶϵ<C6B5><CFB5>2 <20><><EFBFBD><EFBFBD> 16384 Ϊ1s
|
||||
LPTIM_InitStructure.FreeRunning = DISABLE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
|
||||
LPTIM_InitStructure.Prescaler = LPTIM_PRESCALER_DIV1; // Ԥ<><D4A4>Ƶϵ<C6B5><CFB5>2
|
||||
LPTIM_InitStructure.FreeRunning = DISABLE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
LHL_LPTIM_Init(lptimer, &LPTIM_InitStructure);
|
||||
}
|
||||
|
||||
|
||||
/*==================================================================================*/
|
||||
/*LPTimer1==========================================================================*/
|
||||
/*==================================================================================*/
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><><EFBFBD><EFBFBD> LPTIM1<4D><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
* @note ʱ<><CAB1>Ƶ<EFBFBD><C6B5>Ϊ 32768Hz<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶ DIV2 <20><>ʵ<EFBFBD><CAB5>ʱ<EFBFBD><CAB1>Ϊ 16384Hz<48><7A>
|
||||
* <20><><EFBFBD>ڼ<EFBFBD><EFBFBD>㣺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ uploadCounter = (16384/1000) * t(ms) = 16.384 * t
|
||||
* <20><><EFBFBD><EFBFBD> t=125ms<6D><73>uploadCounter<65><72>2048<34><38>
|
||||
* @param uploadCounter: <20>Զ<EFBFBD><D4B6><EFBFBD>װ<EFBFBD><D7B0>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Χ 1~65535<33><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
* @example StartLPTimer1(2048); // <20><><EFBFBD><EFBFBD> 125ms <20><><EFBFBD>ڶ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
* @brief <20><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note LPTimer ʱ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>32768Hz
|
||||
* @param uploadCounter : <20><><EFBFBD>㷽<EFBFBD><EFBFBD>(uploadCounter=32.768 ->t=1ms)
|
||||
**/
|
||||
void StartLPTimer1(u16 uploadCounter)//125ms 250ms ......
|
||||
{
|
||||
@@ -46,15 +37,13 @@ void StartLPTimer1(u16 uploadCounter)//125ms 250ms ......
|
||||
LHL_LPTIM_ITConfig(LPTIM1, ENABLE);
|
||||
NVIC_EnableIRQ(LPTIM1_IRQn);
|
||||
/* 3. <20><><EFBFBD><EFBFBD>LPTimer1 */
|
||||
LHL_LPTIM_Start(LPTIM1, uploadCounter);
|
||||
LHL_LPTIM_Start(LPTIM1, uploadCounter); // LPTIMER1 = (Period+1)/Clock = 32768/32768 = 1S
|
||||
}
|
||||
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><><EFBFBD><EFBFBD> LPTIM1 <EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ģ<EFBFBD>
|
||||
* @note <EFBFBD><EFBFBD>ͣ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±Ƚ<EFBFBD>ֵ CMR<4D><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD>¿<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
* @param uploadCounter: <20>µ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>ֵ <20><><EFBFBD>㷽ʽ16.384 * t
|
||||
* @example ResetLPTimer1(4096); // <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>Ϊ 250ms
|
||||
* @brief <20><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı䶨ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
* @note LPTimer ʱ<><CAB1>Ƶ<EFBFBD><C6B5>32768Hz
|
||||
* @param uploadCounter : <20><><EFBFBD>㷽<EFBFBD><EFBFBD>(uploadCounter=32.768 ->t=1ms)
|
||||
**/
|
||||
void ResetLPTimer1(u16 uploadCounter)
|
||||
{
|
||||
@@ -63,47 +52,40 @@ void ResetLPTimer1(u16 uploadCounter)
|
||||
LPTIM1->CMR = uploadCounter; // 3. <20><><EFBFBD><EFBFBD><EFBFBD>µıȽ<C4B1>ֵ
|
||||
LPTIM1->CSR |= LPTIM_CSR_TEN_Msk; // 4. <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>ʼ
|
||||
}
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ֹͣ LPTIM1
|
||||
* @note <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>λ TEN <20><><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>жϱ<D0B6>־<EFBFBD><D6BE>
|
||||
* @param <20><>
|
||||
* @example StopLPTimer1();
|
||||
**/
|
||||
void StopLPTimer1(void)
|
||||
{
|
||||
LPTIM1->CSR &= ~LPTIM_CSR_TEN_Msk;// 1. <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
LPTIM1->CSR |= LPTIM_CSR_TCF_Msk; // 2. <20><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>жϱ<D0B6>־
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*==================================================================================*/
|
||||
/*LPTimer2==========================================================================*/
|
||||
/*LPTimer1==========================================================================*/
|
||||
/*==================================================================================*/
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><EFBFBD><EFBFBD><EFBFBD> LPTIM2<4D><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
* @note ͬ LPTIM1<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD> 32768Hz<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶ DIV2<56><32><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
|
||||
* @param uploadCounter: <20>Զ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>ֵ
|
||||
* @example StartLPTimer2(2048); // <20><><EFBFBD><EFBFBD> 125ms <20><><EFBFBD>ڶ<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
* @brief <20><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note LPTimer ʱ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>32768Hz
|
||||
* @param uploadCounter : <20><><EFBFBD>㷽<EFBFBD><EFBFBD>(uploadCounter=32.768 ->t=1ms)
|
||||
**/
|
||||
void StartLPTimer2(u16 uploadCounter)//125ms 250ms ......
|
||||
{
|
||||
/* 1. <20><>ʼ<EFBFBD><CABC>LPTimer Base */
|
||||
LHL_LPTIM_DeInit(LPTIM2);
|
||||
LPTIM_Init(LPTIM2);
|
||||
|
||||
/* 2. <20><><EFBFBD><EFBFBD>LPTimer<65>ж<EFBFBD> */
|
||||
LHL_LPTIM_ITConfig(LPTIM2, ENABLE);
|
||||
LPTIM_InitTypeDef LPTIM_InitStructure;
|
||||
|
||||
/* 1. <20><>ʼ<EFBFBD><CABC>LPTimer Base */
|
||||
LPTIM_InitStructure.Mode = LPTIM_MODE_TIMER_COUNTER; // <20><>ʱ<EFBFBD><CAB1>ģʽ
|
||||
#if 1
|
||||
LHL_RCC_LSEConfig(ENABLE);
|
||||
LPTIM_InitStructure.Clock = LPTIM_CLOCKSOURCE_LSI; // LPTIM0ʱ<30><CAB1>ԴLSI
|
||||
#else
|
||||
LPTIM_InitStructure.Clock = LPTIM_CLOCKSOURCE_LSI; // LPTIM0ʱ<30><CAB1>ԴLSI
|
||||
#endif
|
||||
LPTIM_InitStructure.Prescaler = LPTIM_PRESCALER_DIV1; // Ԥ<><D4A4>Ƶϵ<C6B5><CFB5>2
|
||||
LPTIM_InitStructure.FreeRunning = DISABLE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
LHL_LPTIM_Init(pLPTIM2, &LPTIM_InitStructure);
|
||||
/* 2. <20><><EFBFBD><EFBFBD>LPTimer<65>ж<EFBFBD> */
|
||||
LHL_LPTIM_ITConfig(pLPTIM2, ENABLE);
|
||||
NVIC_EnableIRQ(LPTIM2_IRQn);
|
||||
/* 3. <20><><EFBFBD><EFBFBD>LPTimer1<72><31>2 */
|
||||
LHL_LPTIM_Start(LPTIM2, uploadCounter);
|
||||
LHL_LPTIM_Start(pLPTIM2, uploadCounter); // LPTIMER1 = (Period+1)/Clock = 32768/32768 = 1S
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><><EFBFBD><EFBFBD> LPTIM2 <20><><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ģ<EFBFBD>
|
||||
* @param uploadCounter: <20>µ<EFBFBD><C2B5><EFBFBD>װ<EFBFBD><D7B0>ֵ <20><><EFBFBD>㷽ʽ16.384 * t
|
||||
* @example ResetLPTimer2(4096);
|
||||
* @brief <20><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note LPTimer ʱ<><CAB1>Ƶ<EFBFBD><C6B5>32768Hz
|
||||
* @param uploadCounter : <20><><EFBFBD>㷽<EFBFBD><E3B7BD>(uploadCounter=32.768 ->t=1ms)
|
||||
**/
|
||||
void ResetLPTimer2(u16 uploadCounter)
|
||||
{
|
||||
@@ -112,42 +94,17 @@ void ResetLPTimer2(u16 uploadCounter)
|
||||
LPTIM2->CMR = uploadCounter; // 3. <20><><EFBFBD><EFBFBD><EFBFBD>µıȽ<C4B1>ֵ
|
||||
LPTIM2->CSR |= LPTIM_CSR_TEN_Msk; // 4. <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><>ʼ
|
||||
}
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ֹͣ LPTIM2
|
||||
* @example StopLPTimer2();
|
||||
**/
|
||||
void StopLPTimer2(void)
|
||||
{
|
||||
LPTIM2->CSR &= ~LPTIM_CSR_TEN_Msk;// 1. <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
LPTIM2->CSR |= LPTIM_CSR_TCF_Msk; // 2. <20><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>жϱ<D0B6>־
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*==================================================================================*/
|
||||
/*<2A><EFBFBD><CDB9>Ķ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================================*/
|
||||
/*<2A><EFBFBD><CDB9>Ļص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>====================================================================*/
|
||||
/*==================================================================================*/
|
||||
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ע<EFBFBD><EFBFBD> LPTIM1/LPTIM2 <20>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param lptimer: LPTIM1 <20><> LPTIM2
|
||||
* @param lptim_irq_callback: <20>û<EFBFBD><C3BB>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>루<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
|
||||
* @note ÿ<><C3BF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ֻ<EFBFBD><D6BB>ע<EFBFBD><D7A2>һ<EFBFBD><D2BB><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
|
||||
* ע<><D7A2>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NVIC <20>жϡ<D0B6>
|
||||
* @example lptimer_register_irq_callback(LPTIM1, my_callback);
|
||||
* @brief <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
||||
* @note
|
||||
* @param LPTIM_TypeDef *lptimer<65><72>LPTIM1 LPTIM2 <20><> lptimer_irq_callback_t lptim_irq_callback <20><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @example: SHAL_timer_register_irq_callback(pTIM1,callback1);
|
||||
**/
|
||||
static lptimer_irq_callback_t lptim1_irq_callback,lptim2_irq_callback ;
|
||||
|
||||
@@ -167,11 +124,11 @@ void lptimer_register_irq_callback(LPTIM_TypeDef *lptimer ,lptimer_irq_callback_
|
||||
}
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief LPTIM1 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
|
||||
* @param <20><>
|
||||
**/
|
||||
/**
|
||||
* @brief
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
void LPTIM1_IRQHandler(void)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>˻ص<CBBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -180,12 +137,11 @@ void LPTIM1_IRQHandler(void)
|
||||
LHL_LPTIM_ClearPending(LPTIM1); // <20><><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־
|
||||
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief LPTIM2 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
|
||||
* @param <20><>
|
||||
**/
|
||||
/**
|
||||
* @brief
|
||||
* @param
|
||||
* @retval
|
||||
*/
|
||||
void LPTIM2_IRQHandler(void)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>˻ص<CBBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Reference in New Issue
Block a user