OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4118|回复: 4

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

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-3-9
在线时间
7 小时
发表于 2021-12-3 11:47:54 | 显示全部楼层 |阅读模式
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);                               
}




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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-3-9
在线时间
7 小时
 楼主| 发表于 2021-12-3 11:51:31 | 显示全部楼层
[2021-12-03 11:00:58.945]
RX:16 05 01 00 00 00 AC 38

[2021-12-03 11:01:33.039]
RX:16 16 16 16 16 16 16 16

[2021-12-03 11:01:51.041]
RX:00 05 05 05 05 05 05 05

[2021-12-03 11:02:10.052]
RX:00 00 01 01 01 01 01 01

图片显示不出来可以看这个,这就是四条输出
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1734
金钱
1734
注册时间
2021-4-11
在线时间
320 小时
发表于 2021-12-3 14:43:25 | 显示全部楼层
可以接受完然后在主函数里面处理的
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-3-9
在线时间
7 小时
 楼主| 发表于 2021-12-3 18:54:33 | 显示全部楼层
huanan 发表于 2021-12-3 14:43
可以接受完然后在主函数里面处理的

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

USART_SendData(USART1,RxBuffer2[1]);

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

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-3-9
在线时间
7 小时
 楼主| 发表于 2021-12-4 08:59:48 | 显示全部楼层
自顶,求大佬啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-14 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表