|
虚拟串口示波器Serial_Digital_Scope V2 ,按照其指定的协议,编写程序,
float SDS_OutData[4] = { 0 };
u16 CRC_CHECK(u8 *Buf, u8 CRC_CNT)
{
u16 CRC_Temp;
u8 i,j;
CRC_Temp = 0xffff;
for (i=0;i<CRC_CNT; i++)
{
CRC_Temp ^= Buf[i];
for (j=0;j<8;j++)
{
if (CRC_Temp & 0x01)
CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
else
CRC_Temp = CRC_Temp >> 1;
}
}
return(CRC_Temp);
}
void SDS_OutPut_Data(float *S_Out)
{
int temp[4] = {0};
unsigned int temp1[4] = {0};
unsigned char databuf[10] = {0};
unsigned char i;
unsigned short CRC16 = 0;
for(i=0;i<4;i++)
{
temp[i] = (int)S_Out[i];
temp1[i] = (unsigned int)temp[i];
}
for(i=0;i<4;i++)
{
databuf[i*2] = (unsigned char)(temp1[i]%256);
databuf[i*2+1] = (unsigned char)(temp1[i]/256);
}
CRC16 = CRC_CHECK(databuf,8);
databuf[8] = CRC16%256;
databuf[9] = CRC16/256;
for(i=0;i<10;i++)
USART3_Send_Byte(databuf[i]); //LINK TO UART
}
输出
v_group[0]=v_bus/1000;
v_group[1]=1;
v_group[2]=2;
v_group[3]=3;
SDS_OutPut_Data(v_group); 发现界面无任何变化,波特率 9600 串口号换成Com 1都测试了 没有结果,请大神赐教 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|