打印
[STM32F1]

大家帮帮忙,关于串口数据处理问题的新人求助。

[复制链接]
5579|56
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mwj123|  楼主 | 2018-2-27 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mwj123 于 2018-3-1 07:33 编辑

昨天刚拿到秉火 F103 指南者这块板子,初学者想要做一个程序,是一个外部雷达模块通过异步串行接口输入位置信息, 然后经过判断触发不同的相应功能(蜂鸣器、LED)。位置信息格式如下:
0xff,0xff,0xff,0x**,0x**,0x00,0x00,0x00
前三组 0xff 是数据头,接下来的 0x** 是 16 位距离信息的高 8 位,第二个 0x** 是距离信息的低 8 位。共 16 位的二进制数据表示目标的距离,单位是 cm。接下来的三组 0x00 是数据尾。串口采用通讯格式为 1 位启始位,8 位数据位,1 为停止位,无奇偶校验。
然后我根据教程手册和教程的 Usart1 触发 LED 灯的程序更改了一下,主程序如下:

#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_usart.h"
#include "./beep/bsp_beep.h"

void Delay(__IO u32 nCount);
uint16_t ucTemp1;
int main(void)
{        
  int i=0;
  uint16_t a,b;
  while(1)
  {
        
   ucTemp1=USART_ReceiveData(DEBUG_USARTx);
        
   if(ucTemp1==0xff)
   {
     i++;
   }
   if(i==3)
   {
     a=(ucTemp1<< 8)&0xFF00;
   }
   if(i==4)
   {
      b=(ucTemp1&0xFF)|a;
      if(0x64<b&&b<0x2BC)
     {
      BEEP(ON);
      Delay(0x0FFFFF);        
      LED_RGBOFF;
     }
     else
     {
      BEEP(OFF);
      Delay(0x0FFFFF);        
      LED_RED;
      }
     i=0;
     }
   }
}
void Delay(__IO uint32_t nCount)         // 延时函数
{
   for(; nCount != 0; nCount--);
}
没有报错,但为什么最后运行起来没反应。。希望有大神能帮我看下。一点头绪也没有
沙发
mwj123|  楼主 | 2018-2-28 07:53 | 只看该作者
自己顶一下

使用特权

评论回复
板凳
gujiamao12345| | 2018-2-28 13:17 | 只看该作者
debug调试呀
1.串口能收到值?收不到,查软件配置,硬件接线;
2.能的话,看收到的值和你预想的对不对?不对,看波特率之类的

使用特权

评论回复
地板
Larm1| | 2018-2-28 13:39 | 只看该作者
1. 仿真调试,先看看串口能不能接收到数据,如果能将数据存起来,查看数据格式是否正确;
2. 不过不能接收到数据,看看串口能不能发送数据,整个串口有没有工作起来;
3. 查看你的串口波特率等参数设施是否和雷达的一致;
4. 确认雷达有没有数据输出;
5. 确认硬件线连接是否正确;

使用特权

评论回复
5
gygp| | 2018-2-28 16:54 | 只看该作者
串口接受吗

使用特权

评论回复
6
chenci2013| | 2018-2-28 16:54 | 只看该作者
单步调试查看寄存器

使用特权

评论回复
7
biechedan| | 2018-2-28 16:54 | 只看该作者
串口收不到吗

使用特权

评论回复
8
wangdezhi| | 2018-2-28 16:55 | 只看该作者
是不是共地了吗

使用特权

评论回复
9
isseed| | 2018-2-28 16:56 | 只看该作者
串口的有问题吗

使用特权

评论回复
10
gygp| | 2018-2-28 16:58 | 只看该作者
是不是数据接受的问题

使用特权

评论回复
11
chenci2013| | 2018-2-28 16:58 | 只看该作者
可能寄存器没有收到数据。

使用特权

评论回复
12
biechedan| | 2018-2-28 16:58 | 只看该作者
雷达模块是什么接口

使用特权

评论回复
13
isseed| | 2018-2-28 16:58 | 只看该作者
可能数据收不到了。

使用特权

评论回复
14
wangdezhi| | 2018-2-28 16:58 | 只看该作者
没有共地,可能收不到数据的。

使用特权

评论回复
15
mwj123|  楼主 | 2018-2-28 17:31 | 只看该作者
biechedan 发表于 2018-2-28 16:58
雷达模块是什么接口

usart接口

使用特权

评论回复
16
mwj123|  楼主 | 2018-2-28 17:33 | 只看该作者
wangdezhi 发表于 2018-2-28 16:58
没有共地,可能收不到数据的。

共地是接地吗,我雷达模块接的是单片机的GND口,这样算共地吗

使用特权

评论回复
17
suzhanhua| | 2018-2-28 21:39 | 只看该作者
mwj123 发表于 2018-2-28 17:33
共地是接地吗,我雷达模块接的是单片机的GND口,这样算共地吗

这样算共地了。

使用特权

评论回复
18
biechedan| | 2018-2-28 21:40 | 只看该作者
这样判断是不对的吧。

使用特权

评论回复
19
pl202| | 2018-2-28 21:41 | 只看该作者
判断前三个字符是0xff,然后读取后两个字符。

使用特权

评论回复
20
selongli| | 2018-2-28 21:42 | 只看该作者
最简答的就是判断0xff 然后读取后面两个数组

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

0

粉丝