中级会员
 
- 积分
- 210
- 金钱
- 210
- 注册时间
- 2017-9-17
- 在线时间
- 44 小时
|
发表于 2019-3-5 20:44:35
|
显示全部楼层
//串口接收部分
if(huart->Instance==USART1)//判断是否是串口1
{
switch(usart1.state)
{
case 0:
if(usart1.aRxBuffer[0]==0x55)
{
usart1.USART_RX_BUF[usart1.USART_RX_STA++]=usart1.aRxBuffer[0];
usart1.state=1;
}
break;
case 1:
if(usart1.aRxBuffer[0]==0x5A)
{
usart1.USART_RX_BUF[usart1.USART_RX_STA++]=usart1.aRxBuffer[0];
usart1.state=2;
}
else
{
usart1.state=0;
usart1.USART_RX_STA=0;
}
break;
case 2:
usart1.USART_RX_BUF[usart1.USART_RX_STA++]=usart1.aRxBuffer[0];
if(usart1.USART_RX_STA==24)
{
usart1.state=3;
usart1.USART_RX_STA=0;
}
break;
}
//数据处理 E1是控制6N137光耦使能端口,count是搂收正常数据的次数
case 1:
E1=1;
while(1)
{
if(hlw8032_2.count>count)
{
E1=0;
hlw8032_2.count=0;
//Display_data(1,user1.power/100,1);
break;
}
if(usart1.state==3)
{
sum=0;
for(i=2;i<23;i++) sum=sum+usart1.USART_RX_BUF[i];
if(usart1.USART_RX_BUF[23]==(sum&0xff))
{
hlw8032_2.count++;
hlw8032_2.Power_Parameter_REG=usart1.USART_RX_BUF[14]<<16|usart1.USART_RX_BUF[15]<<8|usart1.USART_RX_BUF[16];
hlw8032_2.Power_REG=usart1.USART_RX_BUF[17]<<16|usart1.USART_RX_BUF[18]<<8|usart1.USART_RX_BUF[19];
user1.power=(hlw8032_2.Power_Parameter_REG/hlw8032_2.Power_REG)*188*1;
user1.power=Power_Cal(user1.power);
}
usart1.state=0;
memset(usart1.USART_RX_BUF,0,sizeof(usart1.USART_RX_BUF));
}
}
break; |
|