新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2021-3-9
- 在线时间
- 7 小时
|
1金钱
stm32f030串口接收到八个字节数组,我想提取这个数组的第4位和第5位来进行运算后转为十进制数,但是提取数据的时候出问题了,本人小白,求大佬指点
下面是我中断的代码:
char RxCounter2=0,RxBuffer2[100];
int DF1; //传感器第4位数据
int DF2; //传感器第5位数据
int DF;
void USART2_IRQHandler(void)
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
RxBuffer2[RxCounter2++] = USART_ReceiveData(USART2);
DF1 = RxBuffer2[3];
DF2 = RxBuffer2[4];
DF = (DF1*256 + DF2) / (100);
// USART_SendData(USART1,USART_ReceiveData(USART2)); //输出第一行,这是我传感器发送的数据格式,是8个字节,十六进制数,(这个传感器是四方光电的)
// USART_SendData(USART1,RxBuffer2[0]); //输出第二行,我想要的是提起第一位,一个字节,但是又显示的是一个8个字节的数组
// USART_SendData(USART1,RxBuffer2[1]); //输出第三行,这个是从第二位还是写入,第一位是0,但是还是数组
USART_SendData(USART1,RxBuffer2[2]); //输出第四行,同上,类推
}
while (USART_GetFlagStatus(USART2,USART_FLAG_TXE) == RESET);
}

现在不知道怎么解决,有没有大佬遇到过这个问题,求教!!!
|
|