}
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,转换为十优尔进制后分别将高低八位写入波特率寄存器。设置数据位比特数为8位,无奇偶校验位,停止位1,写入行控制寄存器LCR。当发送FIFO为空时(查看行状态寄存器LSR的相关状态位LSR[5]),把要发送的数据写入发送FIFO,传送到主机上。串口设置程序详见附录B 。
- 上一篇:基于白光LED的室内可见光通信系统发射端电路设计仿真
- 下一篇:电路板故障检测仪软件设计仿真+流程图
-
-
-
-
-
-
-
C++最短路径算法研究和程序设计
g-C3N4光催化剂的制备和光催化性能研究
浅析中国古代宗法制度
现代简约美式风格在室内家装中的运用
高警觉工作人群的元情绪...
江苏省某高中学生体质现状的调查研究
巴金《激流三部曲》高觉新的悲剧命运
上市公司股权结构对经营绩效的影响研究
中国传统元素在游戏角色...
NFC协议物理层的软件实现+文献综述