• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

TIM8 的TRGO事件触发ADC3的程序

dc1cea7c1cfcd099 2019-01-28 浏览量:1126
求一个 TIM8 的TRGO事件触发ADC3的程序
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 有一个参考可以看看代码

    #define SampleNum 240
    vu16 ADC_ConvertedValue[SampleNum];
    void ADC_DMA_Config(void)
    {
    DMA_InitTypeDef DMA_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 ENABLE);
    DMA_DeInit(DMA1_Channel1);
    DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)&ADC1->DR;
    DMA_InitStructure.DMA_MemorybaseAddr = (u32)&ADC_ConvertedValue;
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
    DMA_InitStructure.DMA_BufferSize = 1;
    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不变
    DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址递增
    DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
    DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
    DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
    DMA_InitStructure.DMA_Priority = DMA_Priority_High;
    DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
    DMA_Init(DMA1_Channel1 &DMA_InitStructure);
    DMA_Cmd(DMA1_Channel1ENABLE);
    }
    void ADC1_Config(void)
    {
    GPIO_InitTypeDef GPIO_InitStructure;
    ADC_InitTypeDef ADC_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
    GPIO_Init(GPIOC &GPIO_InitStructure);
    ADC_DMA_Config();
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ENABLE);
    //    ADC_DeInit(ADC1);
    ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式
    ADC_InitStructure.ADC_ScanConvMode = DISABLE;//多通道
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//连续转换
    ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_CC1;//软件启动转换
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换结果右对齐
    ADC_InitStructure.ADC_NbrOfChannel = 1;//通道数目
    ADC_Init(ADC1 &ADC_InitStructure);
    RCC_ADCCLKConfig(RCC_PCLK2_Div6);    //PCLK 6分频
    ADC_RegularChannelConfig(ADC1 ADC_Channel_15 1 ADC_SampleTime_55Cycles5);
    ADC_DMACmd(ADC1 ENABLE);
    ADC_Cmd(ADC1 ENABLE);
    ADC_ResetCalibration(ADC1);
    while(ADC_GetResetCalibrationStatus(ADC1));
    ADC_StartCalibration(ADC1);//开始校准
    while(ADC_GetCalibrationStatus(ADC1));
    ADC_ExternalTrigInjectedConvConfig(ADC1 ADC_ExternalTrigConv_T3_CC1);//TIM_CC1
    ADC_ExternalTrigConvCmd(ADC1 ENABLE);
    // ADC_SoftwareStartConvCmd (ADC1 ENABLE);
    // ADC_ExternalTrigConvCmd(ADC1 ENABLE);
    //设置外部触发模式使能
    }

    • 发布于 2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 你用cubemx生成代码,初始化tim8的输入捕获引脚,启用中断,在中断中启用adc3采集。
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用cubeMX生成代码。设置tim8为外部输入捕获模式,并开启中断,然后接收到中断信号后,启动adc3采集。
    • 发布于2019-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 比如,TIM8 的 TRGO 端触发 ADC---打开 ADC-TRGO 的复用
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

TIM8 的TRGO事件触发ADC3的程序