📄 07.c
字号:
void readdztde(void)//读取定值通道状态
{
unsigned char *p;
p=(unsigned char *)&SPI1.inputstate;
SPI1.channelstate=0x0055;
SPI1.feestate=0x0066;
if(rxbuf[2]==0x00 && rxbuf[3]==0x00)// 读取定值通道的的状态。 1为通道被激活
{
txbuf[6]=*(p+5);
txbuf[7]=*(p+4);
}
txbuf[0]=rxbuf[0];
txbuf[1]=rxbuf[1];
if(rxbuf[2]==0x10 && rxbuf[3]==0xff)// 当前费率,读出每个时段(共8个)的费率
{
txbuf[6]=*(p+9);
txbuf[7]=*(p+8);
}
txbuf[0]=rxbuf[0];
txbuf[1]=rxbuf[1];
txbuf[2]=rxbuf[2];
txbuf[3]=rxbuf[3];
txbuf[4]=rxbuf[4];
txbuf[5]=rxbuf[5];
T16=crc16(txbuf,8);//计算CRC值
high8=T16 >> 8;
low8=T16 & 0xff;
txbuf[8]=high8;
txbuf[9]=low8;
P3OUT |= BIT7; //P4.2为高电平为发送模式
flag.transfer_ok=FAULT;
//if ((IFG1 & UTXIFG0) == 0) // USART0 TX buffer ready?
//{
// i=0;
// do
//{
// TXBUF0=txbuf[i];
// i++;
// }while(i<=9);
//transfer_ok=TRUE;
//i=0;
// }
do
{
TXBUF1=txbuf[i];
while((IFG2 & UTXIFG1) == 0) // USART0 TX buffer ready?
{
_NOP();
}
i++;
}while(i<9);
flag.transfer_ok=TRUE;
i=0;
for(i=0;i<140;i++)
{
rxbuf[i]=0;
txbuf[i]=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -