STM32收HLW8032测量数据并计算电流电压功率
在您写的这篇博客中,我也运用了相似的代码,但是在主函数中调用显示VR,读不出来数据,都是0,是为什么呢?
void USART1_IRQHandler(void)
{
if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET) //判断是否是USART1的接收事件触发的中断
{
Serial_RXData[i++]=USART_ReceiveData(USART1);
if((Serial_RXData[0] != 0x55)&&(Serial_RXData[0] != 0xF2))i = 0;
if((i==2)&&(Serial_RXData[1]!=0x5A))i=0;
if(i==24)
{
TEST=Serial_RXData[1];
VR=(Serial_RXData[5]<<16)|(Serial_RXData[6]<<8)|Serial_RXData[7];
Serial_RxFlag=1;
i=0;
}
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //清除USART1的RXNE标志位
}
}
uint8_t test;
uint32_t VRtest;
extern volatile uint32_t VR;
extern volatile uint8_t TEST;
if(Serial_GetRxFlag()==1)
{
test=TEST;
VRtest=VR;
}