毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

ARM嵌入式系统的数据采集传输系统研究+源程序(14)

时间:2017-02-07 21:33来源:毕业论文
} else { break; } } DBG_Printf ( 通道 %c 采集到的实时电压是: \n\n , ADC_Channel ); unmask_irq ( INT_GPT ); while ( 1 ) { Serial_Input = serial_getc (DEBUG_Port); if (Serial_Input == ASCII_E


        }
        else
        {
break;
        }
    }
DBG_Printf ( "通道 %c 采集到的实时电压是: \n\n"  ,  ADC_Channel );
unmask_irq ( INT_GPT );
    while ( 1 )
        {
            Serial_Input = serial_getc (DEBUG_Port);
            if  (Serial_Input == ASCII_ESC)
            {
                mask_irq (INT_GPT);
                DBG_Printf ( "\n" );
                break ;
中断处理流程:
 
图3.2  中断处理流程
中断处理程序:
void  INT_GPT_Handle (  )
{    
    U16 temp = ADC_msk_Active | ADC_msk_Start |ADC_msk_VREFB \
                    & ~ADC_msk_ASE ;
    float  voltage;
    U8 string[10];
    GPT1_Mask;

    switch  (ADC_Channel)
    {
        case '1':
            temp |= ADC_msk_AD0;
            break;
        case '2':
            temp |= ADC_msk_AD1;
            break;
        case '3':
            temp |= ADC_msk_AD2;
            break;
        case '4':
            temp |= ADC_msk_AD3;
            break;
        default:
            break;
    }

    WriteUCB(ADC_reg_Control, temp);    //触发采样
    voltage = ((float)ADCRead * ADC_Vref ) / ADC_MAX;   //读取采样值并转换为电压值

    sprintf (string,"%6.3fV\t",voltage);
    serial_puts (DEBUG_Port, (U8*)string);
    
    GPT1_ClearInt(temp);
    GPT1_Unmask;
}
3.3  串口软件设计
3.3.1  串口设置程序
发送器Tx 从MCU 接收并行数据, 存入Tx FIFO, 然后在字符中加入起始位、奇偶校验位、停止位后按照设置的波特率串行(LSB first)发送出去。
将串口波特率设置为9600,转换为十751进制后分别将高低八位写入波特率寄存器。设置数据位比特数为8位,无奇偶校验位,停止位1,写入行控制寄存器LCR。当发送FIFO为空时(查看行状态寄存器LSR的相关状态位LSR[5]),把要发送的数据写入发送FIFO,传送到主机上。串口设置程序详见附录B 。 ARM嵌入式系统的数据采集传输系统研究+源程序(14):http://www.751com.cn/tongxin/lunwen_2633.html
------分隔线----------------------------
推荐内容