fgm000 发表于 2024-7-31 09:31:02

已学习

baigezy 发表于 2024-8-1 08:52:34

float ADC_PIPE_READ(u8 p)
{
        u16 dat=0;
        float v=0;
        dat =0xBD;
        ADC_CONTR &= p;
        ADC_POWER =1;
        Delay1us();
        ADC_START = 1;
        while(!ADC_FLAG);
        dat = (ADC_RES << 8)+ ADC_RESL;
        printf("ADC_RES:%x\n",ADC_RES);
        printf("ADC_RESL: %x\n",ADC_RESL);
        ADC_FLAG = 0;
        v=5/4096* (float)dat;
        ADC_RES = 0;
        ADC_RESL = 0;
        return v;
       
}这段代码读取ADC数据。ADC_RESL数据始终位零。请问冲哥是那里写错了吗,USB串口打印结果如下:
接收←ADC_RES:fe
                  ADC_RESL: 0
                  电压:0.00

大叶子 发表于 2024-8-1 11:07:04

认真学习了pwm

baigezy 发表于 2024-8-1 11:14:26

baigezy 发表于 2024-8-1 08:52
float ADC_PIPE_READ(u8 p)
{
        u16 dat=0;


找到原因了:
        void ADC_Init( void )
        {
                P1M0 = 0x00; P1M1 = 0xff;
          P0PU = 0x00;
    P0PD = 0x00;
                ADCTIM = 0X3F;                                        //
                ADCCFG = 0X37;                                        //数据右对齐,时钟选择位SYSCLK/2/16最慢
                ADC_POWER = 1;
        }


//
float ADC_PIPE_READ(u8 p)
{
       
        u16 adcval;        //adc数值保存变量
        float v=0;
        ADC_RES =0;
        ADC_RESL =0;
                ADC_CONTR &= 0xf0;//清空通道
                ADC_CONTR |= p;
//                ADC_POWER = 1;       
                ADC_START = 1;        //开启ADC转化
                _nop_();                                                                //空操作指令
                _nop_();                       
                while(!ADC_FLAG);                                                //等待ADC转换结束
                ADC_FLAG = 0;               
        printf("ADC_RES:->0x%X\r\n",ADC_RES);
        printf("ADC_RESL:->0x%X\r\n",ADC_RESL);
                adcval = (ADC_RES << 8)+ ADC_RESL;        //计算adc的数值
                printf("ADC_Data: %x\r\n",adcval);
                v=(4.86/(float)4096)*(float)adcval;
                printf("电压值:%.2f\r\n",v);
                return v;
       
}
接收←ADC_RES:->0x6
                  ADC_RESL:->0x13
                  ADC_Data: 613
                  电压值:1.85
                  电压:1.85

fgm000 发表于 2024-8-2 08:28:17

打卡第2天

fgm000 发表于 2024-8-2 09:11:52

第九集学习

fgm000 发表于 2024-8-2 09:49:35

第十集学习

ysp5318 发表于 2024-8-2 15:18:26

今天学习了第4集,不要急,不怕错,勇往直前。

科学妞妞 发表于 2024-8-2 18:41:35

ysp5318 发表于 2024-8-2 15:18
今天学习了第4集,不要急,不怕错,勇往直前。

点了一盏灯,就入门了

ysp5318 发表于 2024-8-3 08:36:35

科学妞妞 发表于 2024-8-2 18:41
点了一盏灯,就入门了

谢谢{:handshake:}
页: 203 204 205 206 207 208 209 210 211 212 [213] 214 215 216 217 218 219 220 221 222
查看完整版本: 视频教学:《32位8051单片机原理及应用》,一等奖2万, 送实验箱; 冲哥版