uart_datasample.c

来自「本系统实现了一种具有语音播报、语音提示的高性能、高智能的实用型远距离多 路数据」· C语言 代码 · 共 50 行

C
50
字号
//========================================================================================================//
// 程序名称:UART_DataSample.asm
// 功能描述:实现主机发送命令给从机,读取从机采样后的通道数据
// 日    期:2003/7/7
//========================================================================================================//
#include "main.h"
extern SYSFLAGS sSysFlags;
extern void F_UART_SendCommand(unsigned int);
extern unsigned int F_UART_ReadByte();
//========================================================================================================
//函数: F_UART_DataSample
//语法:void F_UART_DataSample()
//描述:发送命令给从机,读取从机采样后的通道数据
//参数:无
//返回:无
//========================================================================================================
void  F_UART_DataSample(void)
{
	unsigned int uiChannelVoltageValueLow=0;
	unsigned int uiChannelVoltageValueHigh=0;
	unsigned int uiChannelVoltageValueTest=0;
	unsigned int uiSampleChannelComman=0;
	if(sSysFlags.uiCircleSample==1)								//循环采样判断
	{
		sSysFlags.uiChannelNumber+=1;
		if(sSysFlags.uiChannelNumber==8)
			sSysFlags.uiChannelNumber=1;
	}
	uiSampleChannelComman=sSysFlags.uiChannelNumber;
	uiSampleChannelComman=uiSampleChannelComman<<4;
	uiSampleChannelComman+=sSysFlags.uiChannelNumber;			//设置命令为0x00AA,其中A为通道号。
	F_UART_SendCommand(uiSampleChannelComman);		 			//发送采样命令
	uiChannelVoltageValueLow=F_UART_ReadByte();					//读通道数据
	uiChannelVoltageValueHigh=F_UART_ReadByte();				//读通道数据
	uiChannelVoltageValueTest=uiChannelVoltageValueLow+(uiChannelVoltageValueHigh<<8);
	F_UART_SendCommand(uiSampleChannelComman);					//发送采样命令
	uiChannelVoltageValueLow=F_UART_ReadByte();					//读通道数据
	uiChannelVoltageValueHigh=F_UART_ReadByte();				//读通道数据
	uiChannelVoltageValueLow+=(uiChannelVoltageValueHigh<<8);	
	if(uiChannelVoltageValueLow==uiChannelVoltageValueTest)     //比较两次采样的通道数据是否一致。
	{
		sSysFlags.uiChannelVoltageValue=uiChannelVoltageValueTest;
		sSysFlags.uiSampleOk=1;	     //采样标志置1
	}
	else
	{
		sSysFlags.uiSysFaultNumber=1;//故障标志变量置1
		sSysFlags.uiSampleOk=0;      //采样标志置零
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?