野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21886|回复: 7

如何把串口接收到的数据放到一个数组中,求助

[复制链接]
发表于 2016-9-13 17:10:58 | 显示全部楼层 |阅读模式
  菜鸟利用串口助手中断接收并发送数据,当接收到0XFF时才开始发送发送数据,调试好多次了都不行,还请帮忙。附程序主代码,(基本就是例程,其他没做改动)。得不到我想要的结果。

1.png 2.png

回复

使用道具 举报

发表于 2016-9-13 19:19:23 | 显示全部楼层
这个是我根据你要的效果写好的例程
1-电脑端的串口调试助手给开发板发数据,把接收到的数据存在一个数据buf中
2-如果接收到的数据等于0XFF,就把数据发送回去
3-这个是我在霸道上面验证过的代码: USART1接发-把中断接收到的数据放到数组中.zip (323.69 KB, 下载次数: 993)
4-实验现象:记得要以十六进制发送和接收
1.jpg
  1. uint16_t rx_buf[1024];
  2. uint16_t num = 0;

  3. // 串口中断服务函数
  4. // 把接收到的数据存在一个数组缓冲区里面,当接收到的的值等于0XFF时,把值返回
  5. void DEBUG_USART_IRQHandler(void)
  6. {       
  7.         if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
  8.         {       
  9.                 rx_buf[num] = USART_ReceiveData(DEBUG_USARTx);
  10.                
  11.                 // 当接收到的值等于0XFF时,把值发送回去
  12.                 if( rx_buf[num] == 0xff )
  13.                 {
  14.                         USART_SendData(DEBUG_USARTx,rx_buf[num]);
  15.                 }
  16.                
  17.                 // 当值不等时候,则继续接收下一个
  18.     else
  19.     {
  20.                         num ++;
  21.           }  
  22.         }         
  23. }
复制代码


回复 支持 反对

使用道具 举报

发表于 2016-9-13 17:46:56 | 显示全部楼层
QQ截图20160913174517.png
把1放到2的后面
回复 支持 反对

使用道具 举报

发表于 2016-9-13 17:47:10 | 显示全部楼层
用都是配套的串口调试助手吗?不是的话就用配套的串口调试助手试试。
回复 支持 反对

使用道具 举报

发表于 2016-9-13 19:01:21 | 显示全部楼层

眼好尖啊。这样确定可以?
回复 支持 反对

使用道具 举报

发表于 2016-9-13 19:20:34 | 显示全部楼层
郑倚云 发表于 2016-9-13 19:01
眼好尖啊。这样确定可以?

可以的,更加简洁的可以看我2楼的答案。
回复 支持 反对

使用道具 举报

发表于 2017-12-11 00:42:15 | 显示全部楼层
看下                     
回复 支持 反对

使用道具 举报

发表于 2019-8-18 15:57:59 | 显示全部楼层
fire 发表于 2016-9-13 19:19
这个是我根据你要的效果写好的例程
1-电脑端的串口调试助手给开发板发数据,把接收到的数据存在一个数据bu ...

请问火哥,如何才能把串口接收到的“56.3”这种字符串存放到数组里面去呢,比如说5放到A【0】,6放到A【1】这样的。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-3 15:26 , Processed in 0.061462 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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