tmr dma報(bào)錯(cuò)

tmr dma報(bào)錯(cuò),如下程序,為將輸出脈沖停止下來,我在中斷中將新的數(shù)組付給脈沖,但會報(bào)錯(cuò)

#include "ledpwm.h"

#include "CH57x_common.h"

__attribute__((aligned(4))) uint32_t PwmBuf[100];

__attribute__((aligned(4))) uint32_t PwmBuf1[100];

volatile uint8_t capFlag = 0;

void maichong()

{

? GPIOB_ModeCfg(GPIO_Pin_11, GPIO_ModeOut_PP_5mA);

? GPIOPinRemap(ENABLE, RB_PIN_TMR2);

? PRINT("TMR2 DMA PWM\n");

? TMR2_PWMCycleCfg(120000); // 周期 2000us

? PwmBuf[0]=12000;

? PwmBuf[1]=1200;

? PwmBuf[2]=120;

? TMR2_DMACfg(ENABLE, (uint16_t)(uint32_t)&PwmBuf[0], (uint16_t)(uint32_t)&PwmBuf[2], Mode_Single);

? TMR2_PWMInit(High_Level, PWM_Times_1);

? /* 開啟計(jì)數(shù)溢出中斷,計(jì)滿1000個(gè)周期進(jìn)入中斷 */

? TMR2_ClearITFlag(TMR1_2_IT_DMA_END);

? PFIC_EnableIRQ(TMR2_IRQn);

? TMR2_ITCfg(ENABLE, TMR1_2_IT_DMA_END);

}

__attribute__((interrupt("WCH-Interrupt-fast")))

__attribute__((section(".highcode")))

void TMR2_IRQHandler(void)

{

? ? if(TMR2_GetITFlag(TMR0_3_IT_CYC_END))

? ? {

? ? ? ? TMR2_ClearITFlag(TMR0_3_IT_CYC_END);

? ? ? ? /* 計(jì)數(shù)器計(jì)滿,硬件自動清零,重新開始計(jì)數(shù) */

? ? ? ? /* 用戶可自行添加需要的處理 */

? ? }

? ? if(TMR2_GetITFlag(TMR1_2_IT_DMA_END))

? ? {

? ? ? ? TMR2_ClearITFlag(TMR1_2_IT_DMA_END);

? ? ? ? PwmBuf1[0]=0;

? ? ? ? PwmBuf1[1]=0;

? ? ? ? PwmBuf1[2]=0;

? ? ? ? ?TMR2_DMACfg(ENABLE, (uint16_t)(uint32_t)&PwmBuf1[0], (uint16_t)(uint32_t)&PwmBuf1[2], Mode_Single);

? ? ? ? /* DMA 結(jié)束 */

? ? ? ? /* 用戶可自行添加需要的處理 */

? ? }

}

1721466323356.png

檢查這個(gè)c文件是否有包含,如果顯示灰色,可以鼠標(biāo)右擊放在c文件,include。

image.png

停止脈沖可以參考博客:

CH58xPWM功能 - SweetTea_lllpc - 博客園 (cnblogs.com)


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频