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

@@ -1,6 +1,13 @@
#include "../main/SystemInclude.h"
/* <20><><EFBFBD><EFBFBD>DMAMUX<55><58>DMA<4D><41>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/**------------------------------------------------------------------------
* @brief <20><><EFBFBD><EFBFBD> DMAMUX<55><58>DMA <20><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param channel: DMA ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD> DMA_CHANNEL_0
* @param source: <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> REQUEST_SOURCE_ADC0
* @note <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> DMA ͨ<><CDA8><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>ʹ<EFBFBD><CAB9> DMAMUX ͨ<><CDA8><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>Periodic_Trigger<65><72>Ĭ<EFBFBD>Ͻ<EFBFBD><CFBD>á<EFBFBD>
* @example DMA_DMAMUX_CFG(DMA_CHANNEL_0, REQUEST_SOURCE_ADC0);
**/
void DMA_DMAMUX_CFG(DMA_CHANNEL_t channel,DMAMUX_REQ_SRC_t source)
{
DMAMUX_InitTypeDef DMAMUX_InitStructure;
@@ -13,26 +20,30 @@ void DMA_DMAMUX_CFG(DMA_CHANNEL_t channel,DMAMUX_REQ_SRC_t source)
}
/*-=====================================================================================================
//DMA<4D>жϻص<CFBB>
-=====================================================================================================*/
/**------------------------------------------------------------------------
* @brief <20>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
* @note
* @param
* @example:
**/
static dma_callbacks_t dma_callbacks[4] = {NULL};
/**------------------------------------------------------------------------
* @brief ע<><D7A2> DMA ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
* @param dmachannel: DMA ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD> DMA_CHANNEL_0
* @param dma_half_irq_callback: <20><EFBFBD><EBB4AB><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3A8>Ϊ NULL<4C><4C>
* @param dma_major_irq_callback: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3A8>Ϊ NULL<4C><4C>
* @note <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ʹ<EFBFBD>ܶ<EFBFBD>Ӧ<EFBFBD><D3A6> NVIC <20>жϣ<D0B6>
* - CH0 ʹ<><CAB9> DMA1_CH0_IRQn
* - CH1 ʹ<><CAB9> DMA1_CH1_IRQn
* - CH2/CH3 ʹ<><CAB9> DMA1_CH2_CH3_IRQn
* @example DMA_register_irq_callback(DMA_CHANNEL_0, my_half_cb, my_major_cb);
**/
void DMA_register_irq_callback(DMA_CHANNEL_t dmachannel, dma_half_irq_callback_t dma_half_irq_callback ,dma_major_irq_callback_t dma_major_irq_callback)
{
dma_callbacks[dmachannel].half_callback = dma_half_irq_callback;
dma_callbacks[dmachannel].major_callback = dma_major_irq_callback;
switch (dmachannel) { //<2F><>ȡ EXTI <20>߶<EFBFBD>Ӧ<EFBFBD><D3A6> IRQ <20><>
case DMA_CHANNEL_0: NVIC_EnableIRQ(DMA1_CH0_IRQn); break;
case DMA_CHANNEL_1: NVIC_EnableIRQ(DMA1_CH1_IRQn); break;
case DMA_CHANNEL_1: NVIC_EnableIRQ(DMA1_CH1_IRQn); break;
case DMA_CHANNEL_2:
case DMA_CHANNEL_3:
NVIC_EnableIRQ(DMA1_CH2_CH3_IRQn); break;
@@ -41,7 +52,11 @@ void DMA_register_irq_callback(DMA_CHANNEL_t dmachannel, dma_half_irq_callback_t
}
/**------------------------------------------------------------------------
* @brief DMA1 ͨ<><CDA8> 0 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <20>ж<EFBFBD><D0B6>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EBB4AB>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><E1A3A9>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> 0 <20><><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
**/
void DMA1_CH0_IRQHandler(void)
{
if(LHL_DMA_GetPending(DMA_CHANNEL_0) == DMA_IT_HALF) {
@@ -57,7 +72,11 @@ void DMA1_CH0_IRQHandler(void)
}
/**------------------------------------------------------------------------
* @brief DMA1 ͨ<><CDA8> 1 <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <20>ж<EFBFBD><D0B6>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EBB4AB>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><E1A3A9>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> 1 <20><><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
**/
void DMA1_CH1_IRQHandler(void)//
{
if(LHL_DMA_GetPending(DMA_CHANNEL_1) == DMA_IT_HALF) {
@@ -72,7 +91,11 @@ void DMA1_CH1_IRQHandler(void)//
LHL_DMA_ClearPending(DMA_CHANNEL_1);
}
/**------------------------------------------------------------------------
* @brief DMA1 ͨ<><CDA8> 2 <20><> 3 <20><><EFBFBD><EFBFBD><EFBFBD>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <20>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> 2 <20><>ͨ<EFBFBD><CDA8> 3 <20><><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD>ж<EFBFBD><D0B6>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ͣ<EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>Ӧͨ<D3A6><CDA8><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE>
**/
void DMA1_CH2_3_IRQHandler(void)
{
if(LHL_DMA_GetPending(DMA_CHANNEL_2) == DMA_IT_HALF) {