问答

汇集网友智慧,解决技术难题

21ic问答首页 - LKs32mc07x MCPWM 为何无法多次触发adc 采样?

国产芯片 技术交流 MUC ADC 触发 MCPWM

LKs32mc07x MCPWM 为何无法多次触发adc 采样?

FEZ2025-05-07
修改ADC为单段采样,中断使能打开;现象IO 0.6口 从低变到高之后保持;中断程序如下:


回答 +关注 0
167人浏览 3人回答问题 分享 举报
3 个回答
  • 求助求助!!!
    使用LK07x 官网demo mcpwm 触发 ADC采集;
    目前该demo 触发adc 采集一次就结束了,如何修改 可以一直连续触发adc 采集呢?
    修改ADC为单段采样,中断使能打开;现象IO 0.6口 从低变到高之后保持;中断程序如下:
    void GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
    {
        uint16_t current_state = GPIOx->PDO & GPIO_Pin;

        if(current_state)
        {
            GPIOx->BRR = GPIO_Pin;  // ??
        }
        else
        {
            GPIOx->BSRR = GPIO_Pin; // ??
        }
    }
    void ADC0_IRQHandler(void)
    {
              if(ADC_GetIRQFlag(ADC0,ADC_SF1_IF))
                    {
                              ADC_ClearIRQFlag(ADC0,ADC_SF1_IF);
                                    GPIO_TogglePin(GPIO0 ,GPIO_Pin_6);
                    }
    }
  • void GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
    {
        uint16_t current_state = GPIOx->PDO & GPIO_Pin;

        if(current_state)
        {
            GPIOx->BRR = GPIO_Pin;  // ??
        }
        else
        {
            GPIOx->BSRR = GPIO_Pin; // ??
        }
    }
    void ADC0_IRQHandler(void)
    {
              if(ADC_GetIRQFlag(ADC0,ADC_SF1_IF))
                    {
                              ADC_ClearIRQFlag(ADC0,ADC_SF1_IF);
                                    GPIO_TogglePin(GPIO0 ,GPIO_Pin_6);
                    }
    }

您需要登录后才可以回复 登录 | 注册