ADC采集到的值通过串口发送出去,但发送数据时数据不太正常,大家帮忙看看,谢谢了,急急急!!!

2019-07-20 18:57发布

ADC采集到的值通过串口发送出去,但发送数据时数据不太正常,我想把采集到的16位数拆分成两个8位通过串口发送出去,测3.3V时输出对应的值应该是4096,结果不对,大家帮忙看看,谢谢了,急急急!!!

int main(void)
{
        u16 adcx;
        u8 dataH,dataL;
        My_USART1_Init();   //初始化串口1
        delay_init(100);    //初始化延时函数
        Adc_Init();         //初始化ADC
        while(1)
        {
                adcx=Get_Adc_Average(ADC_Channel_5,20);//获取通道5的转换值,20次取平均
                 adcx=adcx&0xfff;   //清高四位
                dataH = (adcx >> 8) & 0xff;  //取
                USART_SendData(USART1, dataH);//发送高8位
                while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
                 {} //等待发送数据寄存器为
                         
                        //delay_ms(20);         
                         
                 dataL = adcx & 0xff ;  //低8位
                USART_SendData(USART1, dataL);//发送低8位
                while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
                 {} //等待发送数据寄存器为
                         
                delay_ms(20);       
        }
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。