This commit is contained in:
2026-03-20 21:19:53 +08:00
parent 9d3b4b836f
commit 6a749331db
125 changed files with 29972 additions and 23051 deletions

View File

@@ -3,10 +3,16 @@
/*==================================================================================*/
/*BTimer0 */
/*==================================================================================*/
/**------------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @note ֻ<><D6BB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param btim_period : <20><><EFBFBD><EFBFBD><E3B7BD>(btim_period=t*syscklock)
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> BTIM0 <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ʱ<><CAB1>ԴΪϵͳʱ<CDB3><CAB1> HCLK<4C><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SystemClockConfiguration <20><><EFBFBD>ñ仯<C3B1><E4BBAF><EFBFBD><EFBFBD> 4MHz/8MHz/16MHz/32MHz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> T = (btim_period + 1) / HCLK<4C><4B><EFBFBD><EFBFBD>λΪ<CEBB>
* <20><><EFBFBD>ú<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param btim_period: <20>Զ<EFBFBD><D4B6><EFBFBD>װ<EFBFBD><D7B0>ֵ<EFBFBD><D6B5>0~65535<33><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
* @example
* // <20><><EFBFBD><EFBFBD> HCLK = 4MHz<48><7A><EFBFBD><EFBFBD>Ҫ 1ms <20><><EFBFBD>ڣ<EFBFBD>btim_period = 4e6 * 0.001 - 1 = 3999
* BTIM0_Init(3999);
**/
void BTIM0_Init(uint16_t btim_period)
{
@@ -21,11 +27,14 @@ void BTIM0_Init(uint16_t btim_period)
// NVIC_EnableIRQ(TIM5_IRQn); // BTIMER0<52><30>ӦTIM5_IRQ
}
/**------------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param btim_period : <20><><EFBFBD><EFBFBD><EFBFBD>(btim_period=t*syscklock)
* @example: StartBtimer0(syscklock); //1s
* @brief <20><><EFBFBD><EFBFBD> BTIM0 <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @note <20><><EFBFBD><EFBFBD> BTIM0_Init <20><><EFBFBD>ɳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param btim_period: <20>Զ<EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>ֵ
* @example
* // HCLK = 4MHz<48><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1ms <20><><EFBFBD>ڶ<EFBFBD>ʱ<EFBFBD><CAB1>
* StartBtimer0(3999);
**/
void StartBtimer0(uint16_t btim_period)
{
@@ -33,6 +42,13 @@ void StartBtimer0(uint16_t btim_period)
BTIM->TCTRL_0 |= BTIM_TCTRL_TEN_Msk; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> LHL_BTIM_Start(BTIMER_0,btim_period,0);
// NVIC_EnableIRQ(TIM5_IRQn); // BTIMER0<52><30>ӦTIM5_IRQ
}
/**------------------------------------------------------------------------
* @brief ֹͣ BTIM0 <20><>ʱ<EFBFBD><CAB1>
* @note <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>λ TEN<45><4E>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param <20><>
* @example StopBtimer0();
**/
void StopBtimer0(void)
{
// LHL_BTIM_Stop(BTIMER_0);
@@ -41,6 +57,12 @@ void StopBtimer0(void)
/*==================================================================================*/
/*BTimer1 */
/*==================================================================================*/
/**------------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> BTIM1 <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ͬ BTIM0<4D><30>ʱ<EFBFBD><CAB1>ԴΪϵͳʱ<CDB3><CAB1> HCLK<4C><4B>
* @param btim_period: <20>Զ<EFBFBD><D4B6><EFBFBD>װ<EFBFBD><D7B0>ֵ
* @example BTIM1_Init(3999); // HCLK=4MHz<48><7A>1ms <20><><EFBFBD><EFBFBD>
**/
void BTIM1_Init(uint16_t btim_period)
{
BTIM_Base_InitTypeDef BTIM_InitStructure;
@@ -53,31 +75,61 @@ void BTIM1_Init(uint16_t btim_period)
LHL_BTIM_ITConfig(BTIMER_1, ENABLE);
// NVIC_EnableIRQ(TIM6_IRQn); // BTIMER1<52><31>ӦTIM6_IRQ
}
/**------------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD> BTIM1 <20><>ʱ<EFBFBD><CAB1>
* @param btim_period: <20>Զ<EFBFBD><D4B6><EFBFBD>װ<EFBFBD><D7B0>ֵ
* @example StartBtimer1(3999);
**/
void StartBtimer1(uint16_t btim_period)
{
BTIM1_Init(btim_period);
BTIM->TCTRL_1 |= BTIM_TCTRL_TEN_Msk; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> LHL_BTIM_Start(BTIMER_0,btim_period,0);
// NVIC_EnableIRQ(TIM6_IRQn); // BTIMER1<52><31>ӦTIM6_IRQ
}
/**------------------------------------------------------------------------
* @brief ֹͣ BTIM1 <20><>ʱ<EFBFBD><CAB1>
* @note <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>λ TEN<45><4E>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param <20><>
* @example StopBtimer1();
**/
void StopBtimer1(void)
{
// LHL_BTIM_Stop(BTIMER_1);
BTIM->TCTRL_1 &= ~BTIM_TCTRL_TEN_Msk;
}
/*-=====================================================================================================
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD>жϻص<CFBB>
-=====================================================================================================*/
static btimer_irq_callback_t btim0_irq_callback ,btim1_irq_callback ;
/**------------------------------------------------------------------------
* @brief ע<><D7A2> BTIM0/BTIM1 <20>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
* @param timer: BTIMER_0 <20><> BTIMER_1
* @param btim_irq_callback: <20>û<EFBFBD><C3BB>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>޲<EFBFBD><DEB2><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ֵ<EFBFBD><D6B5>
* @note ע<><D7A2>ʱ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ NVIC <20>жϡ<D0B6>
* @example Btimer_register_irq_callback(BTIMER_0, my_btim_callback);
**/
void Btimer_register_irq_callback(BTIM_ID_t timer, btimer_irq_callback_t btim_irq_callback)
{
if(timer == BTIMER_0) {btim0_irq_callback = btim_irq_callback; LHL_BTIM_ClearPending(BTIMER_0);NVIC_EnableIRQ(TIM5_IRQn);}
else if(timer == BTIMER_1) {btim1_irq_callback = btim_irq_callback; LHL_BTIM_ClearPending(BTIMER_1);NVIC_EnableIRQ(TIM6_IRQn);}
}
// BTIMER0<52><30>ӦTIM5_IRQ
/**------------------------------------------------------------------------
* @brief BTIM0 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ TIM5_IRQn<51><6E>
* @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>ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
**/
void TIM5_IRQHandler(void)
{
if (btim0_irq_callback != NULL) btim0_irq_callback();// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
@@ -86,7 +138,10 @@ void TIM5_IRQHandler(void)
LHL_BTIM_ClearPending(BTIMER_0); // <20><><EFBFBD>жϱ<D0B6>־
}
//BTIMER1<52><31>ӦTIM6_IRQ
/**------------------------------------------------------------------------
* @brief BTIM1 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ TIM6_IRQn<51><6E>
* @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>ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
**/
void TIM6_IRQHandler(void)
{
if (btim1_irq_callback != NULL) btim1_irq_callback();// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>