stm32f030串口接收到数组如何处理

问题遇到的现象和发生背景

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);                               
}
运行结果及报错内容
[2021-12-03 11:00:58.945]
RX:16 05 01 00 00 00 AC 38         // USART_SendData(USART1,USART_ReceiveData(USART2))输出结果

[2021-12-03 11:01:33.039]
RX:16 16 16 16 16 16 16 16         // USART_SendData(USART1,RxBuffer2[0])输出结果

[2021-12-03 11:01:51.041]
RX:00 05 05 05 05 05 05 05         // USART_SendData(USART1,RxBuffer2[1])输出结果

[2021-12-03 11:02:10.052]
RX:00 00 01 01 01 01 01 01         // USART_SendData(USART1,RxBuffer2[2])输出结果
我的解答思路和尝试过的方法

我将 RxBuffer2 定义为全局变量以后,在main.c里面执行

USART_SendData(USART1,RxBuffer2[1]);

后输出变成一个字节了,但是读取不出 RxBuffer2 内的数,输出都是0

[2021-12-03 12:03:11.052]
RX:00
我想要达到的结果

执行

USART_SendData(USART1,RxBuffer2[0]);

后可以得到

RX: 16

执行

USART_SendData(USART1,RxBuffer2[1]);

后可以得到

RX: 05

以此类推,感谢各位帮助

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。