打印
[MM32软件]

MM32F5330的ADC1通道1采集时会收到UART2影响吗?为什么用了UART2,ADC1通道1的值会变大?

[复制链接]
516|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbllbbll|  楼主 | 2023-7-5 11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC配置如下:
    GPIO_InitTypeDef GPIO_InitStruct;
    ADC_InitTypeDef  ADC_InitStruct;

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = DRIVER_KEY_GPIO_PIN;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AIN;
    GPIO_Init(DRIVER_KEY_GPIO_PORT, &GPIO_InitStruct);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
   
    ADC_StructInit(&ADC_InitStruct);
    ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b;
    ADC_InitStruct.ADC_Prescaler  = ADC_Prescaler_16;
    ADC_InitStruct.ADC_Mode       = ADC_Mode_Imm;
    ADC_InitStruct.ADC_DataAlign  = ADC_DataAlign_Right;
    ADC_Init(DRIVER_KEY_ADC_PORT, &ADC_InitStruct);

    ADC_ReferenceVoltageConfig(DRIVER_KEY_ADC_PORT, ADC_Select_Vref_Internal);

    ADC_Cmd(DRIVER_KEY_ADC_PORT, ENABLE);
   
    ADC_AnyChannelCmd(DRIVER_KEY_ADC_PORT, DISABLE);
       
    ADC_ChannelCmd(DRIVER_KEY_ADC_PORT, DRIVER_KEY_ADC_CHANNEL, ENABLE);

    ADC_SampleTimeConfig(DRIVER_KEY_ADC_PORT,
                        DRIVER_KEY_ADC_CHANNEL,
                        DRIVER_KEY_ADC_SAMPLE_TIME);
                        
    ADC_CalibrationConfig(DRIVER_KEY_ADC_PORT, 0x1FE);

使用特权

评论回复
沙发
zhaohao1997| | 2023-7-10 13:44 | 只看该作者
看下是不是 UART2 接的外设 IO 电压和单片机电压不一致导致的?可能外设通过串口向单片机灌电流了,建议硬件上在单片机的 RX 引脚上接一个二极管,电流方向朝外设,然后配置 RX 引脚为上拉输入,这样外设输出低电平时单片机的 RX 也是低电平,外设输出高电平时单片机依靠内部的上拉电阻产生高电平,避免外设的高电平向MM32F5330灌电流。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝